<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Habanero.Base</name>
    </assembly>
    <members>
        <member name="T:Habanero.Util.TypeUtilities">
            <summary>
            Provides a set of Utilities to work with types.
            </summary>
        </member>
        <member name="M:Habanero.Util.TypeUtilities.IsInteger(System.Type)">
            <summary>
            Indicates if type is an integer type.
            </summary>
            <param name="type">Type to check.</param>
            <returns>true if type is an integer type.</returns>
        </member>
        <member name="M:Habanero.Util.TypeUtilities.IsDecimal(System.Type)">
            <summary>
            Indicates if type is an decimal type.
            </summary>
            <param name="type">Type to check.</param>
            <returns>true if type is an decimal type.</returns>
        </member>
        <member name="M:Habanero.Util.TypeUtilities.ConvertTo``1(System.Object)">
            <summary>
             Converts a value to the specified type using the <see cref="T:System.ComponentModel.TypeConverter"/> associated with the source value.
            </summary>
            <param name="obj">The value to convert</param>
            <typeparam name="TDestinationType">The type to convert the value to.</typeparam>
            <returns>The converted value</returns>
        </member>
        <member name="M:Habanero.Util.TypeUtilities.ConvertTo(System.Type,System.Object)">
            <summary>
             Converts a value to the specified type using the <see cref="T:System.ComponentModel.TypeConverter"/> associated with the source value.
            </summary>
            <param name="type">The type to convert the value to.</param>
            <param name="obj">The value to convert</param>
            <returns>The converted value</returns>
        </member>
        <member name="T:Habanero.Base.Source">
            <summary>
            Represents a source from which data is retrieved
            </summary>
        </member>
        <member name="M:Habanero.Base.Source.#ctor(System.String)">
            <summary>
             Constructs a <see cref="T:Habanero.Base.Source"/> with the name of the source.
            </summary>
            <param name="name">The name of the source.</param>
        </member>
        <member name="M:Habanero.Base.Source.#ctor(System.String,System.String)">
            <summary>
             Creates a source 
            </summary>
            <param name="name"></param>
            <param name="entityName"></param>
        </member>
        <member name="M:Habanero.Base.Source.ToString">
            <summary>
            Returns this source in a string form
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Source.GetHashCode">
            <summary>
            Returns this source in hash code form
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Source.Equals(System.Object)">
            <summary>
            Indicates whether the given source is equal to this one
            </summary>
            <param name="obj">The source to compare with this one</param>
            <returns>Returns true if equal, false if not</returns>
        </member>
        <member name="M:Habanero.Base.Source.JoinToSource(Habanero.Base.Source)">
            <summary>
            Joins a given source onto this one using an inner join
            </summary>
            <param name="toSource">The source to join onto this one</param>
        </member>
        <member name="M:Habanero.Base.Source.FromString(System.String)">
            <summary>
            Gets the string clause that represents the source from which a join originates
            </summary>
            <param name="sourcename">The name of the source</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Source.MergeWith(Habanero.Base.Source)">
            <summary>
            Merges the current source with another specified source
            </summary>
            <param name="sourceToMerge">The source to merge this one with</param>
        </member>
        <member name="M:Habanero.Base.Source.Clone">
            <summary>
            Does a shallow clone of this Source. That is, it copies this Source object and its lists of joins, but the 
            sources linked to in the joins are not copied.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.Source.Name">
            <summary>
            Gets and sets the name of the source
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.EntityName">
            <summary>
            Gets and sets the entity name of the source
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.Joins">
            <summary>
            Gets the list of joins that make up the source
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.ChildSource">
            <summary>
            Gets the source which is a child of this one, which can
            occur where one source inherits from another
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.ChildSourceLeaf">
            <summary>
            Gets the furthermost child
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.InheritanceJoins">
            <summary>
            Gets the list of joins that create one source through inheritance
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.IsPrepared">
            <summary>
            Gets and sets the value that indicates whether the source has been prepared
            </summary>
        </member>
        <member name="T:Habanero.Base.Source.JoinList">
            <summary>
            Manages a list of joins that make up a <see cref="T:Habanero.Base.Source"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.Source.JoinList.#ctor(Habanero.Base.Source)">
            <summary>
             Creates a Join List
            </summary>
            <param name="fromSource"></param>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:Habanero.Base.Source.JoinList.MergeWith(Habanero.Base.Source.JoinList)">
            <summary>
            Merges a given list of joins into this one
            </summary>
            <param name="joinListToMerge">The list of joins to add to this one</param>
        </member>
        <member name="M:Habanero.Base.Source.JoinList.AddNewJoinTo(Habanero.Base.Source,Habanero.Base.Source.JoinType)">
            <summary>
            Adds a new join from the source containing this join list to the
            specified source, using the specified join type
            </summary>
            <param name="toSource">The source to connect the current source to</param>
            <param name="joinType">The type of join to use</param>
            <returns>Returns the newly created join</returns>
        </member>
        <member name="P:Habanero.Base.Source.JoinList.FromSource">
            <summary>
            Gets the source containing this join list
            </summary>
        </member>
        <member name="T:Habanero.Base.Source.JoinType">
            <summary>
            Provides a list of join types used to connect sources
            </summary>
        </member>
        <member name="F:Habanero.Base.Source.JoinType.InnerJoin">
            <summary>
            Merges two sources only on the records with they match on some given criteria
            </summary>
        </member>
        <member name="F:Habanero.Base.Source.JoinType.LeftJoin">
            <summary>
            Merges two sources by including all records in the primary (left) source
            and only rows in the secondary (right) source that match on some given criteria
            </summary>
        </member>
        <member name="T:Habanero.Base.Source.Join">
            <summary>
            Represents a join between sources that allows the multiple sources to
            be regarded as one
            </summary>
        </member>
        <member name="M:Habanero.Base.Source.Join.#ctor(Habanero.Base.Source,Habanero.Base.Source)">
            <summary>
             Constructor for Join
            </summary>
            <param name="fromSource"></param>
            <param name="toSource"></param>
        </member>
        <member name="M:Habanero.Base.Source.Join.#ctor(Habanero.Base.Source,Habanero.Base.Source,Habanero.Base.Source.JoinType)">
            <summary>
             Constructor for Join
            </summary>
            <param name="fromSource"></param>
            <param name="toSource"></param>
            <param name="joinType"></param>
        </member>
        <member name="M:Habanero.Base.Source.Join.GetJoinClause">
            <summary>
            Gets the clause used to indicate the type of join
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Source.Join.Clone">
            <summary>
            Does a shallow clone of this join (i.e. doesn't clone the FromSource and ToSource)
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.Source.Join.FromSource">
            <summary>
            Gets the primary source from which the join originates
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.Join.ToSource">
            <summary>
            Gets the source to which this join connects
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.Join.JoinFields">
            <summary>
            Gets a list of fields on which the two sources must match
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.Join.JoinType">
            <summary>
            Gets and sets the type of join used to connect the sources
            </summary>
        </member>
        <member name="T:Habanero.Base.Source.Join.JoinField">
            <summary>
            Represents a field on which two sources must match
            </summary>
        </member>
        <member name="M:Habanero.Base.Source.Join.JoinField.#ctor(Habanero.Base.QueryField,Habanero.Base.QueryField)">
            <summary>
             Constructor for a JoinField
            </summary>
            <param name="fromField"></param>
            <param name="toField"></param>
        </member>
        <member name="P:Habanero.Base.Source.Join.JoinField.FromField">
            <summary>
            Gets the field in the primary source
            </summary>
        </member>
        <member name="P:Habanero.Base.Source.Join.JoinField.ToField">
            <summary>
            Gets the field in the secondary source
            </summary>
        </member>
        <member name="T:Habanero.Base.Result">
            <summary>
            Indicates whether an operation was successful and provides
            a message to display to the user.  This class provides a simpler alternative to
            using "out string errors" as a way of recognising errors in an operation.
            </summary>
        </member>
        <member name="M:Habanero.Base.Result.#ctor(System.Boolean)">
            <summary>
            Instantiates a new result
            </summary>
            <param name="successful">Whether the operation was a success or not</param>
        </member>
        <member name="M:Habanero.Base.Result.#ctor(System.Boolean,System.String)">
            <summary>
            Instantiates a new result
            </summary>
            <param name="successful">Whether the operation was a success or not</param>
            <param name="message">The message to display to the user.  A message can
            be returned for either a successful or failed operation.</param>
        </member>
        <member name="P:Habanero.Base.Result.Successful">
            <summary>
            Gets whether the operation was successful
            </summary>
        </member>
        <member name="P:Habanero.Base.Result.Message">
            <summary>
            Gets the message provided for the user.  A message can be provided
            for either successful or failed operations.
            </summary>
        </member>
        <member name="T:Habanero.Base.INumberGenerator">
            <summary>
            An interface to model a generator of unique numbers. It keeps
            record of the last number retrieved and can provide a new
            unique number on request.  An example usage might be a till
            receipt number for a retail business.  Incrementing the numbers
            as they are dispensed is one means of achieving uniqueness.
            </summary>
        </member>
        <member name="M:Habanero.Base.INumberGenerator.NextNumber">
            <summary>
            Returns the next available unique number. One possible means
            of providing unique numbers is simply to increment the last one
            dispensed.
            </summary>
            <returns>Returns an integer</returns>
        </member>
        <member name="M:Habanero.Base.INumberGenerator.SetSequenceNumber(System.Int64)">
            <summary>
            Allows the developer to set the new Sequence number this can be used when initialy creating the numbers e.g. when 
            you want to ensure that the numbers are generated starting at 10000.
            </summary>
            <param name="newSequenceNumber"></param>
        </member>
        <member name="M:Habanero.Base.INumberGenerator.AddToTransaction(Habanero.Base.ITransactionCommitter)">
            <summary>
            Interface to add the number generator to a transaction via the transaction committer.
            </summary>
            <param name="transactionCommitter"></param>
        </member>
        <member name="T:Habanero.Base.FilterClauseOperator">
            <summary>
            An enumeration that provides an operator for filter clauses, which
            allow only rows of data to be shown that meet the requirements set by the
            filter.  Note_ that some types of operators may not be appropriate for
            certain data types, such as "OpLike" for an integer.
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpEquals">
            <summary>
            The data matches the filter value exactly
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpLike">
            <summary>
            The data contains the filter value
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpGreaterThanOrEqualTo">
            <summary>
            The data is greater than or equal to the filter value
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpLessThanOrEqualTo">
            <summary>
            The data is less than or equal to the filter value
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpGreaterThan">
            <summary>
            The data is greater than the filter value
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpLessThan">
            <summary>
            The data is less than the filter value
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.Is">
            <summary>
            E.g. Is Null and Is Not Null.
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseOperator.OpNotEqual">
            <summary>
            NotEqual i.e. != .
            </summary>
        </member>
        <member name="T:Habanero.Base.FilterClauseCompositeOperator">
            <summary>
            An enumeration that provides an operator used by a composite filter
            clauses to connect individual filter clauses
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseCompositeOperator.OpAnd">
            <summary>
            An "and" operator to connect filter clauses
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterClauseCompositeOperator.OpOr">
            <summary>
            An "or" operator to connect filter clauses
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.HabaneroDeveloperException">
            <summary>
            Provides an Exception class which is raised in the Habanero Architecture when a developer uses 
            the architecture or a method in the architecture incorrectly e.g. if a method is called with invalid 
            paramaters.
            </summary>    
        </member>
        <member name="F:Habanero.Base.Exceptions.HabaneroDeveloperException._developerMessage">
            <summary>
            The message shown to the developer, logged and emailed when this error is raised.
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="userMessage">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="userMessage">The error message</param>
            <param name="developerMessage">An Extended error message for the developer</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.#ctor(System.String,System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="userMessage">The user error message</param>
            <param name="developerMessage">An extended error message for the developer</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroDeveloperException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Required for ISerializable.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="P:Habanero.Base.Exceptions.HabaneroDeveloperException.DeveloperMessage">
            <summary>
             The developer message set in teh constructor
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.HabaneroApplicationException">
            <summary>
            Provides a generalised application exception to throw
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroApplicationException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroApplicationException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroApplicationException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroApplicationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.UserException">
            <summary>
            Provides an exception to throw in the case where a user action
            has resulted in some kind of malfunction
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.UserException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.UserException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.UserException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.UserException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.HabaneroIncorrectTypeException">
            <summary>
            Provides an Exception class which is raised in the Habanero Architecture when a developer uses 
            the architecture or a method in the architecture incorrectly e.g. if a method is called with invalid 
            paramaters.
            </summary>    
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="userMessage">The error message</param>
            <param name="developerMessage">An Extended error message for the developer</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.#ctor(System.String,System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="userMessage">The user error message</param>
            <param name="developerMessage">An extended error message for the developer</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Required for ISerializable.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="P:Habanero.Base.Exceptions.HabaneroIncorrectTypeException.DeveloperMessage">
            <summary>
             The developer message set in the constructor
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectCollection">
            <summary>
            Models a collection of business objects.  This interface has been provided to
            circumvent the strong typing of BusinessObjectCollection.
            This interface is used when you want the full capabilities of a business object collection 
            as part of your domain model or for linking to user interfaces etc.
            If you simply require a list of Business Objects with limited intelligence then check out
            <see cref="T:Habanero.Base.IBusinessObjectList"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Find(System.Guid)">
            <summary>
            Finds a business object that has the key string specified.<br/>
            Note_: the format of the search term is strict, so that a Guid ID
            may be stored as "boIDname=########-####-####-####-############".
            In the case of such Guid ID's, rather use the FindByGuid() function.
            Composite primary keys may be stored otherwise, such as a
            concatenation of the key names.
            </summary>
            <param name="key">The orimary key as a string</param>
            <returns>Returns the business object if found, or null if not</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Clone">
            <summary>
            Returns a new collection that is a copy of this collection
            </summary>
            <returns>Returns the cloned copy</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.IndexOf(Habanero.Base.IBusinessObject)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"></see>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"></see>.</param>
            <returns>
            The index of item if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Add(Habanero.Base.IBusinessObject)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Contains(Habanero.Base.IBusinessObject)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"></see> contains a specific value.
            </summary>
            <returns>
            True if item is found in the <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.CopyTo(Habanero.Base.IBusinessObject[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"></see> to an <see cref="T:System.Array"></see>, starting at a particular <see cref="T:System.Array"></see> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"></see>. The <see cref="T:System.Array"></see> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">arrayIndex is less than 0.</exception>
            <exception cref="T:System.ArgumentNullException">Array is null.</exception>
            <exception cref="T:System.ArgumentException">Array is multidimensional or arrayIndex
            is equal to or greater than the length of array.-or-The number of elements in
            the source <see cref="T:System.Collections.Generic.ICollection`1"></see> is 
            greater than the available space from arrayIndex to the end of the destination array, or 
            Type T cannot be cast automatically to the type of the destination array.</exception>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Remove(Habanero.Base.IBusinessObject)">
            <summary>
            Removes the first occurrence of a specific object from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
            <returns>
            True if item was successfully removed from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            This method also returns false if item is not found in the original
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.IsValid(System.String@)">
            <summary>
            Indicates whether all of the business objects in the collection
            have valid values, amending an error message if any object is
            invalid
            </summary>
            <param name="errorMessage">An error message to amend</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.SaveAll">
            <summary>
            Commits to the database all the business objects that are either
            new or have been altered since the last committal
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Sort(System.String,System.Boolean,System.Boolean)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="propertyName">The property name to sort on</param>
            <param name="isBoProperty">Whether the property is a business
            object property</param>
            <param name="isAscending">Whether to sort in ascending order, set
            false for descending order</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Sort(System.Collections.IComparer)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="comparer">The property name to sort on</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Load(System.String,System.String)">
            <summary>
            Loads business objects that match the search criteria provided,
            loaded in the order specified.  
            Use empty quotes, (or the LoadAll method) to load the
            entire collection for the type of object.
            </summary>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.CreateBusinessObject">
            <summary>
            Creates a business object of type TBusinessObject
            Adds this BO to the CreatedBusinessObjects list. When the object is saved it will
            be added to the actual bo collection.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.LoadAll">
            <summary>
            Loads the entire collection for the type of object.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.LoadAll(System.String)">
            <summary>
            Loads the entire collection for the type of object,
            loaded in the order specified. 
            To load the collection in any order use the LoadAll() method.
            </summary>
            <param name="orderByClause">The order-by clause</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.LoadWithLimit(System.String,System.String,System.Int32)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, 
            and limiting the number of objects loaded
            </summary>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="limit">The limit</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.AddWithoutEvents(Habanero.Base.IBusinessObject)">
            <summary>
            Allows the adding of business objects to the collection without
            this causing the added event to be fired.
            This is intended to be used for internal use only.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.RestoreAll">
            <summary>
            Restores all the business objects to their last persisted state, that
            is their state and values at the time they were last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.CancelEdits">
            <summary>
            Restores all the business objects to their last persisted state, that
            is their state and values at the time they were last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.LoadWithLimit(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided
            and an extra criteria literal, 
            loaded in the order specified, 
            and limiting the number of objects loaded
            </summary>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCollection.Refresh">
            <summary>
            Refreshes the business objects in the collection
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.BusinessObjectAdded">
            <summary>
            Handles the event of a business object being added
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.BusinessObjectRemoved">
            <summary>
            Handles the event of a business object being removed
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.BusinessObjectUpdated">
            <summary>
            Handles the event of any business object in this collection being Updated(i.e the BO is saved, or edits are cancelled).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.Updated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.BusinessObjectPropertyUpdated">
            <summary>
            Handles the event of any business object in this collection being edited (i.e. a property value is changed).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.PropertyUpdated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.BusinessObjectIDUpdated">
            <summary>
            Handles the event when a BusinessObject in the collection has an ID that is Updated(i.e one of the properties of the ID is edited).
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObjectCollection.CollectionRefreshed">
            <summary>
            Event Fires whenever the Collection is Refreshed.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.ClassDef">
            <summary>
            Returns the class definition of the collection
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.IsDirty">
            <summary>
            Indicates whether any of the business objects have been amended 
            since they were last persisted
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.SelectQuery">
            <summary>
             the select query that is used to load this business object collection.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"></see>.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1"></see> is read-only.</exception>
            <returns>The element at the specified index.</returns>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.PersistedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently persisted to the 
              database. The Business Object collection maintains this list so as to be
              able to store the state of this collection when it was last loaded or persisted
              to the relevant datastore. This is necessary so that the collection can be
              restored (in the case where a user selects to can edits to a collection.
              The business object collection differentiates between
              - business objects deleted from it since it was last synchronised with the datastore.
              - business objects added to it since it was last synchronised.
              - business objects created by it since it was last synchronised.
              - business objects removed from it since it was last synchronised.
            </summary>
            Hack: This method was created to overcome the shortfall of using a Generic Collection.
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.CreatedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently created for the
              collection but have not yet been persisted to the database.
            </summary>
            Hack: This method was created returning a type IList to overcome problems with 
              BusinessObjectCollecion being a generic collection.
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.RemovedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently removed for the
              collection but have not yet been persisted to the database.
            </summary>
            Hack: This method was created returning a type IList to overcome problems with 
              BusinessObjectCollecion being a generic collection.
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.AddedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently added for the
              collection but have not cessarily been persisted to the database.
            </summary>
            Hack: This method was created returning a type IList to overcome problems with 
              BusinessObjectCollecion being a generic collection.
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.MarkedForDeleteBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently marked for deletion for the
              collection but have not cessarily been persisted to the database.
            </summary>
            Hack: This method was created returning a type IList to overcome problems with 
              BusinessObjectCollecion being a generic collection.
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.TotalCountAvailableForPaging">
            <summary>
             This property is used to return the total number of records available for paging.
             It is set internally by the loader when the collection is being loaded.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectCollection.TimeLastLoaded">
            <summary>
            The DateTime that the Collection was loaded.
            This is used to determine whether the Collection should be Reloaded when 
            the MultipleRelationship get BusinessObjectCollection is called.
            </summary>
        </member>
        <member name="T:Habanero.Base.DateTimeToday">
            <summary>
             This is a wrapper class for DateTime.Today. This is used by search and filter criteria to build up a search Criteria object.
             For loading the appropriate objects from the collection.
            </summary>
        </member>
        <member name="T:Habanero.Base.IResolvableToValue">
            <summary>
             Defines a generalised type that can be resolved to a value
            </summary>
        </member>
        <member name="T:Habanero.Base.IResolvableToValue`1">
            <summary>
             Defines a generalised type that can be resolved to a value of type <typeparamref name="T"/>.
            </summary>
            <typeparam name="T">The value type that this object can be resolved to.</typeparam>
        </member>
        <member name="M:Habanero.Base.IResolvableToValue`1.ResolveToValue">
            <summary>
             Resolved the instance class to a value of type <typeparamref name="T"/>.
            </summary>
            <returns>The value that the instance class is resolved to.</returns>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.CompareTo(System.Object)">
            <summary>
            Compares the current instance with another object of the same type.
            </summary>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than obj. Zero This instance is equal to obj. Greater than zero This instance is greater than obj. 
            </returns>
            <param name="obj">An object to compare with this instance. </param>
            <exception cref="T:System.ArgumentException">obj is not the same type as this instance. </exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.Habanero#Base#IResolvableToValue{System#Object}#ResolveToValue">
            <summary>
             Resolved the instance class to a value of type DateTime.
            </summary>
            <returns>The value that the instance class is resolved to.</returns>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.ResolveToValue">
            <summary>
             Resolved the instance class to a value of type DateTime.
            </summary>
            <returns>The value that the instance class is resolved to.</returns>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.ToString">
            <summary>
             Returns a ToString of the Value (Today).
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.CompareTo(System.DateTime)">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. 
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.DateTimeToday.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.Base.DateTimeToday.Value">
            <summary>
             Returns the current Today value from the DateTime object.
            </summary>
        </member>
        <member name="P:Habanero.Base.DateTimeToday.OffSet">
            <summary>
            The Number of Days offset e.g. if you want tomorrow then 1 if yesterday -1.
            </summary>
        </member>
        <member name="T:Habanero.Util.ImageThumbnailCreator">
            <summary>
            Creates image thumbnails
            </summary>
            TODO: What is the intention with the height/width inversion for h>w ?
        </member>
        <member name="M:Habanero.Util.ImageThumbnailCreator.CreateThumbnail(System.Drawing.Image,System.Int32)">
            <summary>
            Creates a thumbnail from the image provided, scaled down to the
            new height specified while keeping the aspect ratio
            </summary>
            <param name="fullImage">The image to replicate</param>
            <param name="newHeight">The new height to scale to</param>
            <returns>Returns a thumbnail Image</returns>
        </member>
        <member name="M:Habanero.Util.ImageThumbnailCreator.ThumbnailCallback">
            <summary>
            Returns false
            </summary>
            <returns>Returns false</returns>
        </member>
        <member name="T:Habanero.Base.NullCrypter">
            <summary>
            An encrypter that carries out null change on the given string. 
            In other words, both the decrypt and encrypt methods simply return the
            string provided without changing it.
            </summary>
        </member>
        <member name="T:Habanero.Base.ICrypter">
            <summary>
            Interface for classes that provide an encryption facility.
            </summary>
        </member>
        <member name="M:Habanero.Base.ICrypter.DecryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to decrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="M:Habanero.Base.ICrypter.EncryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to encrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="M:Habanero.Base.NullCrypter.DecryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to decrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="M:Habanero.Base.NullCrypter.EncryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to encrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="T:Habanero.Base.ConfirmationDelegate">
            <summary>
             A delegate which provides a value specifying the user's confirmation response.
            </summary>
            <param name="confirmed">The user's confirmation response.</param>
        </member>
        <member name="T:Habanero.Base.IConfirmer">
            <summary>
            An interface to model a tool to get confirmation from the user before
            proceeding with some action
            </summary>
        </member>
        <member name="M:Habanero.Base.IConfirmer.Confirm(System.String)">
            <summary>
            Gets confirmation from the user after providing them with an option
            </summary>
            <param name="message">The message to display</param>
            <returns>Returns true if the user confirms the choice and false
            if they decline the offer</returns>
        </member>
        <member name="M:Habanero.Base.IConfirmer.Confirm(System.String,Habanero.Base.ConfirmationDelegate)">
            <summary>
             Gets confirmation from the user after providing them with an option
             and executes the provided delegate once the user has responded.
            </summary>
            <param name="message">The message to display</param>
            <param name="confirmationDelegate">The delegate to execute once the user has responded.</param>
            <returns>Returns true if the user confirms the choice and false
             if they decline the offer</returns>
        </member>
        <member name="T:Habanero.Base.KeyDefCol">
            <summary>
            Maintains a collection of key definitions (KeyDef objects)
            </summary>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.#ctor">
            <summary>
            A basic constructor that sets up an empty collection
            </summary>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.Add(Habanero.Base.IKeyDef)">
            <summary>
            Adds a key definition to the collection
            </summary>
            <param name="keyDef"></param>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.Remove(Habanero.Base.IKeyDef)">
            <summary>
            Removes a key definition from the collection
            </summary>
            <param name="keyDef">The Key Definition to remove</param>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.Contains(Habanero.Base.IKeyDef)">
            <summary>
            Indicates if the specified Key Definition exists
            in the collection.
            </summary>
            <param name="keyDef">The Key Definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.Contains(System.String)">
            <summary>
            Indicates whether the collection contains the key definition specified
            </summary>
            <param name="keyName">The name of the key definition</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.GetKeyDefAtIndex(System.Int32)">
            <summary>
            returns the key def at the index/
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.CreateBOKeyCol(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new collection of business object keys (BOKey)
            using the key definitions in this collection.
            </summary>
            <param name="lBOPropCol">The collection of properties</param>
            <returns>Returns a new BOKey collection object containing a mirror
            of this key definition collection</returns>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.System#Collections#Generic#IEnumerable{Habanero#Base#IKeyDef}#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.Base.KeyDefCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.Base.KeyDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <param name="keyName">The name of the key definition</param>
            <returns>Returns the definition matching the name
            provided or null if none are found</returns>
        </member>
        <member name="P:Habanero.Base.KeyDefCol.Count">
            <summary>
            Gets the count of items in this collection
            </summary>
        </member>
        <member name="P:Habanero.Base.KeyDefCol.ClassDef">
            <summary>
             The ClassDef that these KeyDefs belong to.
            </summary>
        </member>
        <member name="T:Habanero.Base.IUIFormField">
            <summary>
             interface for a ui form field
            </summary>
        </member>
        <member name="M:Habanero.Base.IUIFormField.GetLabel">
            <summary>
             Gets the label for this form field.
            </summary>
            <returns> The label for this form field </returns>
        </member>
        <member name="M:Habanero.Base.IUIFormField.GetParameterValue(System.String)">
            <summary>
            Returns the parameter value for the name provided
            </summary>
            <param name="parameterName">The parameter name</param>
            <returns>Returns the parameter value or null if not found</returns>
        </member>
        <member name="M:Habanero.Base.IUIFormField.HasParameterValue(System.String)">
            <summary>
             Returns true if the UIFormField has a paramter value.
            </summary>
            <param name="parameterName"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.IUIFormField.PropertyName">
            <summary>
            Returns the property name
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.MapperTypeName">
            <summary>
            Returns the mapper type name
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.MapperAssembly">
            <summary>
             Returns the mapper assembly
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.ControlAssemblyName">
            <summary>
            The name of the property type assembly
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.ControlTypeName">
            <summary>
            The name of the control type
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.ControlType">
            <summary>
            Returns the control type
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.Editable">
            <summary>
            Indicates whether the control is editable
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.ShowAsCompulsory">
            <summary>
            Whether shown as compulsory on the form or not
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.ToolTipText">
            <summary>
             Returns the text that will be shown in the Tool Tip for the control.
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.Parameters">
            <summary>
            Returns the Hashtable containing the property attributes
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.IsCompulsory">
            <summary>
             Is the field compulsory (i.e. must it be shown as compulsory on the form or not)
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.UIFormColumn">
            <summary>
             The <see cref="P:Habanero.Base.IUIFormField.UIFormColumn"/> that this form field is to be placed in.
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.Layout">
            <summary>
             The <see cref="T:Habanero.BO.ClassDefinition.LayoutStyle"/> to be used for this form field.
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIFormField.Label">
            <summary>
            Returns the label
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelKeyDef">
            <summary>
            This class contains the definition of a Foreign Key that defines the properties <see cref="T:Habanero.Base.IRelPropDef"/> that
              that forms a relationship between two Classes. 
            This class collaborates with the <see cref="T:Habanero.Base.IRelPropDef"/>, the <see cref="T:Habanero.Base.IClassDef"/> 
              to provide a definition of the properties involved in the <see cref="T:Habanero.Base.IRelationshipDef"/> between 
              two <see cref="T:Habanero.Base.IBusinessObject"/>. This provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            the RelKeyDef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelKeyDef (Relationship Key Definition) is a list of relationship Property Defs <see cref="T:Habanero.Base.IRelPropDef"/> that 
              define the properties that form the persistant relationship definition (<see cref="T:Habanero.Base.IRelationshipDef"/> between 
              two Business object defitions (<see cref="T:Habanero.Base.IClassDef"/>.
              <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelKeyDef.Add(Habanero.Base.IRelPropDef)">
            <summary>
            Adds the related property definition to this key, as long as
            a property by that name has not already been added.
            </summary>
            <param name="relPropDef">The RelPropDef object to be added.</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            argument passed is null</exception>
        </member>
        <member name="M:Habanero.Base.IRelKeyDef.CreateRelKey(Habanero.Base.IBOPropCol)">
            <summary>
            Create a relationship key based on this key definition and
            its associated property definitions
            </summary>
            <param name="lBoPropCol">The collection of properties</param>
            <returns>Returns the new RelKey object</returns>
        </member>
        <member name="M:Habanero.Base.IRelKeyDef.Contains(System.String)">
            <summary>
            Returns true if a property with this name is part of this key.
            </summary>
            <param name="propName">The property name to search by</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="P:Habanero.Base.IRelKeyDef.Item(System.String)">
            <summary>
            Provides an indexing facility for the property definitions
            in this key definition so that they can be 
            accessed like an array (e.g. collection["surname"])
            </summary>
            <param name="propName">The name of the property</param>
            <returns>Returns the corresponding RelPropDef object</returns>
        </member>
        <member name="P:Habanero.Base.IRelKeyDef.Count">
            <summary>
             The number of property definitiosn defined in the relKeyDef
            </summary>
        </member>
        <member name="T:Habanero.Base.IExpression">
            <summary>
            IExpression is an interface for an Expression tree consisting of 
            one or more Expressions arranged in a binary tree. The Expression may 
            be terminal (i.e. it has no child expression) or it may 
            be a node in the expression tree (i.e. it consists of two 
            expressions and an operator).
            </summary>
        </member>
        <member name="M:Habanero.Base.IExpression.ExpressionString">
            <summary>Return an Expression string consisting of the 
            parameter name operator and parameter value.</summary>
            <returns>Returns the expression string</returns>
        </member>
        <member name="M:Habanero.Base.IExpression.SqlExpressionString(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Creates a valid sql expression, e.g. for a "where" clause
            </summary>
            <param name="statement">The statement to append the new
            expression to</param>
            <param name="tableNameFieldNameLeftSeparator">The left field 
            separator used when building up a database "where" clause. This 
            is different for different databases, but is used to ensure that 
            the where clause is always valid, even if the fieldname is a 
            reserved word for the particular database. (This is usually '[' 
            for sql databases) </param>
            <param name="tableNameFieldNameRightSeparator">The right field 
            separator used when building up a database "where" clause. This 
            is different for different databases, but is used to ensure that 
            the where clause is always valid, even if the fieldname is a 
            reserved word for the particular database. (This is usually ']' 
            for sql databases) </param>
            <returns>Returns a string with syntax tableFieldNameLeftSeparator  
            tableName  tableFieldNameRightSeparator  dot  tableFieldNameLeftSeparator 
            fieldName  tableFieldNameRightSeparator = value</returns>
            <example>With the separators as "[" and "]", the resulting
            stringExpression for a text data type would be
            [tableName].[fieldName] = 'value'</example>
        </member>
        <member name="M:Habanero.Base.IExpression.SetParameterSqlInfo(Habanero.Base.IParameterSqlInfo)">
            <summary>
            Copies across the parameterised sql info (see IParameterSqlInfo for
            more detail)
            </summary>
            <param name="info">The IParameterSqlInfo object</param>
        </member>
        <member name="M:Habanero.Base.IExpression.Clone">
            <summary>
             Creates and returns a copy of this IExpression instance.
            </summary>
            <returns>Returns a copy of this IExpression instance.</returns>
        </member>
        <member name="T:Habanero.Base.IBusinessObject">
            <summary>
            Provides an interface for business objects. This interface contains all the publically accessable
            methods for Business Objects.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.IsEditable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The editable state of a business object.
             E.g. Once an invoice is paid it is no longer editable. Or when a course is old it is no
             longer editable. This allows a UI developer to standise Code for enabling and disabling controls.
             These rules are applied to new object as well so if you want a new object 
             to be editable then you must include this.Status.IsNew in evaluating IsEditable.
             </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.IsDeletable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The Deletable state of a business object. E.g. Invoices can never be delted once created. 
             Objects cannot be deteled once they have reached certain stages e.g. a customer order after it is accepted.
             These rules are applied to new object as well so if you want a new object 
             to be deletable then you must include this.Status.IsNew in evaluating IsDeletable.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.GetPropertyValue(System.String)">
            <summary>
            Returns the value under the property name specified
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.GetPropertyValue(Habanero.Base.Source,System.String)">
            <summary>
            Returns the value under the property name specified, accessing it through the 'source'
            </summary>
            <param name="source">The source of the property ie - the relationship or C# property this property is on</param>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.SetPropertyValue(System.String,System.Object)">
            <summary>
            Sets a property value to a new value
            </summary>
            <param name="propName">The property name</param>
            <param name="newPropValue">The new value to set to</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.Save">
            <summary>
            Commits to the database any changes made to the object
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.Restore">
            <summary>
            Cancel all edits made to the object since it was loaded from the 
            database or last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.CancelEdits">
            <summary>
            Cancel all edits made to the object since it was loaded from the 
            database or last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.MarkForDelete">
            <summary>
            Marks the business object for deleting.  Calling Save() will
            then carry out the deletion from the database.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.Delete">
            <summary>
            Marks the business object for deleting.  Calling Save() will
            then carry out the deletion from the database.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.IsValid(System.String@)">
            <summary>
            Indicates whether all of the property values are valid
            </summary>
            <param name="invalidReason">A string to modify with a reason
            for any invalid values</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.IsValid">
            <summary>
            Indicates whether all of the property values are valid
            </summary>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.IsCreatable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The Creatable rules of a business object.
             E.g. Certain users may not be allowed to create certain Business Objects.
             </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.GetPersistedPropertyValue(Habanero.Base.Source,System.String)">
            <summary>
            Returns the value stored in the DataStore for the property name specified, accessing it through the 'source'
            </summary>
            <param name="source">The source of the property ie - the relationship or C# property this property is on</param>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObject.GetPropertyValueString(System.String)">
            <summary>
            Returns the named property value that should be displayed
              on a user interface e.g. a textbox.
            This is used particularly for dates and guids where there is a
            particular format for the GUID/Date as a string.
            This is used for Database lookups lookup lists etc
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the property value as a string</returns>
        </member>
        <member name="P:Habanero.Base.IBusinessObject.ID">
            <summary>
            Returns the primary key ID of this object.  If there is no primary key on this
            class, the primary key of the nearest suitable parent is found and populated
            with the values held for that key in this object.  This is a possible situation
            in some forms of inheritance.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObject.ClassDef">
            <summary>
            Returns or sets the class definition. Setting the classdef is not recommended
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObject.Relationships">
            <summary>
            Gets and sets the collection of relationships
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObject.Status">
            <summary>
            The BOState object for this BusinessObject, which records the state information of the object
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObject.Props">
            <summary>
            The BOProps in this business object
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.Updated">
            <summary>
            Fired every time an object is persisted.
              Whether the object is updated, inserted or deleted.
            Also fired when the object is restored.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.Saved">
            <summary>
            Fired when an object that is not deleted is updated to the database
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.Deleted">
            <summary>
            Event fired when an object marked for deletion is persisted to the databse.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.Restored">
            <summary>
            Fired when the object is restored.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.IDUpdated">
            <summary>
            The event is fired when the business object is updated
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.PropertyUpdated">
            <summary>
            Event is raised when any <see cref="T:Habanero.Base.IBOProp"/> belonging to this <see cref="T:Habanero.Base.IBusinessObject"/>
             is updated (i.e. modified.
            </summary>
        </member>
        <member name="E:Habanero.Base.IBusinessObject.MarkedForDeletion">
            <summary>
            This event is raised when this <see cref="T:Habanero.Base.IBusinessObject"/> is Marked for deletion.
            </summary>
        </member>
        <member name="T:Habanero.Base.HabaneroApp">
            <summary>
            The base class for a HabaneroAppUI and HabaneroAppConsole, two classes to kick start an application built
            using the Habanero libraries.
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new application with basic application
            information.  Use the Startup() method to launch the application.
            </summary>
            <param name="appName">The application name</param>
            <param name="appVersion">The application version</param>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.Startup">
            <summary>
            Launches the application, initialising the logger, the database
            configuration and connection, the class definitions, the exception
            notifier and the synchronisation controller.  This method also
            carries out any version upgrades using the 
            IApplicationVersionUpgrader, if specified.
            </summary>
            <returns>Returns true if launched successfully, false if not. A
            failed launch will result in error messages being sent to the log
            with further information about the failure.</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.SetupExceptionNotifier">
            <summary>
            Sets up the exception notifier used to display
            exceptions to the final user.  If not specified,
            assumes the FormExceptionNotifier.
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.SetupDatabaseConnection">
            <summary>
            Sets up the database connection.  If not provided, then
            reads the connection from the config file.
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.SetupSettings">
            <summary>
            Initialises the settings.  If not provided, DatabaseSettings
            is assumed.
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.SetupClassDefs">
            <summary>
            Loads the class definitions
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroApp.Upgrade">
            <summary>
            Upgrades an application's database where an application
            upgrader has been provided.  See <see cref="T:Habanero.Base.IApplicationVersionUpgrader"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.ApplicationVersionUpgrader">
            <summary>
            Sets the version upgrader, which carries
            out upgrades on an installed application to upgrade it to newer
            versions.
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.Settings">
            <summary>
            Gets and sets the settings storer, which stores application settings such
            as those for the database.  This can be set with an
            instantiation of DatabaseSettings (the default) or 
            ConfigFileSettings, although the later is read-only.
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.LoadClassDefs">
            <summary>
            Gets and sets the value indicating whether to load the class definitions
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.AppName">
            <summary>
            Gets the name of the application
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.AppVersion">
            <summary>
            Gets the version of the application
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.ClassDefsFileName">
            <summary>
            Gets and sets the class definition file name. See <see cref="T:Habanero.Base.IClassDef"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.ClassDefsXml">
            <summary>
            Gets and sets the class definition Xml. You can load the xml any way and set it here.
            </summary>
        </member>
        <member name="P:Habanero.Base.HabaneroApp.ExceptionNotifier">
            <summary>
            Gets and sets the exception notifier, which is used to inform the
            user of exceptions encountered.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidDefinitionException">
            <summary>
            Provides an exception to throw when the xml being
            examined is invalid or not well-formed
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidDefinitionException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidDefinitionException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidDefinitionException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidDefinitionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.ClassDefCol">
            <summary>
            Manages a collection of class definitions.
            </summary>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.#ctor">
            <summary>
            Initialises an empty collection
            </summary>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Add(Habanero.Base.IClassDef)">
            <summary>
            Adds a class definition to the collection
            </summary>
            <param name="value">The class definition to add</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Add(System.Collections.Generic.IEnumerable{Habanero.Base.IClassDef})">
            <summary>
            Adds a class definition to the collection
            </summary>
            <param name="classDefCol">The class definitions to add</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Contains(System.Type)">
            <summary>
            Indicates whether the collection contains a class definition
            representing the passed type.
            </summary>
            <param name="key">The name of the class definition</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Contains(System.String,System.String)">
            <summary>
            Indicates whether the collection contains a class definition
            representing the passed type.
            </summary>
            <param name="assemblyName">The name of the class assembly</param>
            <param name="className">The name of the class</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Contains(Habanero.Base.IClassDef)">
            <summary>
            Indicates whether the collection contains the class definition
            that is passed as a parameter.
            </summary>
            <param name="classDef">The class definition to look for.</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Remove(System.Type)">
            <summary>
            Removes the class definition for the specified type from the
            collection.
            </summary>
            <param name="key">The name of the class definition</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Remove(Habanero.Base.IClassDef)">
            <summary>
            Removes the specified class definition from the collection.
            </summary>
            <param name="classDef">The class definition to be removed</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Remove(System.String,System.String)">
            <summary>
            Removes the specified class definition from the collection.
            </summary>
            <param name="assemblyName">The assembly name of the class definition to remove</param>
            <param name="className">The name of the class definition to remove</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.FinalizeInstanceFlag">
            <summary>
            Removes a flag that indicates that a collection exists.  After
            this flag is removed, calling LoadColClassDef will result in a
            new empty collection replacing the existing one.
            </summary>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.FindByClassName(System.String)">
            <summary>
             Finds the class definition in the collection with the specified name.
             Returns null if there is no class definition found with the specified name.
            </summary>
            <param name="className">The name of the class to find</param>
            <returns>The class definition with the specified name, otherwise returns null.</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.GetColClassDef">
            <summary>
            Returns the existing collection, or creates and returns a 
            new empty collection.
            </summary>
            <returns>A collection of class definitions</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.LoadColClassDef(Habanero.Base.ClassDefCol)">
            <summary>
            Returns the existing collection, or creates and returns a 
            new empty collection.
            </summary>
            <param name="classDefCol">A loaded collection of class definitions to initialise the collection with</param>
            <returns>A collection of class definitions</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.Clear">
            <summary>
             Clears the class definitions colleciton.
            </summary>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.GetTypeId(System.String,System.String,System.Boolean)">
            <summary>
             This method combines the assembly name and class name to 
             create a string that represents the Class Type.
            </summary>
            <param name="assemblyName">The class's assembly name</param>
            <param name="className">The class's name</param>
            <returns>A string representing the Class Type.</returns>
            <param name="includeNamespace">Should the TypeId include the namespace or not</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.GetTypeId(System.Type,System.Boolean)">
            <summary>
             This method returns a string that represents the given Class Type.
            </summary>
            <param name="classType">The class's Type object.</param>
            <returns>A string representing the Class Type.</returns>
            <param name="includeNamespace">Should the TypeId include the namespace or not</param>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.StripOutNameSpace(System.String)">
            <summary>
             Strips the namespace out of the className and returns stripped classname
            </summary>
            <param name="className">The classname including its namespace that will be stripped of</param>
            <returns>the classname without its namespace</returns>
        </member>
        <member name="M:Habanero.Base.ClassDefCol.StripOutNameSpace(System.String,System.String@)">
            <summary>
             Strips the namespace out of the className and returns stripped classname
            </summary>
            <param name="className">The classname including its namespace that will be stripped of</param>
            <param name="namespaceString">returns the namespace that was stripped of</param>
            <returns>the classname without its namespace</returns>
        </member>
        <member name="P:Habanero.Base.ClassDefCol.Item(System.Type)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <param name="key">The name of the class definition</param>
            <returns>Returns the class definition that matches the key
            or null if none is found</returns>
        </member>
        <member name="P:Habanero.Base.ClassDefCol.Item(System.String,System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <param name="assemblyName">The name of the class assembly</param>
            <param name="className">The name of the class</param>
            <returns>Returns the class definition that matches the key
            or null if none is found</returns>
        </member>
        <member name="P:Habanero.Base.ClassDefCol.Keys">
            <summary>
            Returns a collection of the key names being stored
            </summary>
        </member>
        <member name="P:Habanero.Base.ClassDefCol.Values">
            <summary>
            Returns a collection of the values being stored
            </summary>
        </member>
        <member name="P:Habanero.Base.ClassDefCol.Count">
            <summary>
             The number of class defs in the collection.
            </summary>
        </member>
        <member name="T:Habanero.Base.BOKeyCol">
            <summary>
            Manages a collection of BOKey objects
            </summary>
        </member>
        <member name="M:Habanero.Base.BOKeyCol.#ctor">
            <summary>
            Constructor to initialise a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.Base.BOKeyCol.Add(Habanero.Base.IBOKey)">
            <summary>
            Adds a key to the collection
            </summary>
            <param name="lBOKey">The BO key</param>
        </member>
        <member name="M:Habanero.Base.BOKeyCol.Add(Habanero.Base.BOKeyCol)">
            <summary>
            Copies all the keys held in another collection into this collection
            </summary>
            <param name="keyCol">The other collection</param>
        </member>
        <member name="M:Habanero.Base.BOKeyCol.Contains(System.String)">
            <summary>
            Indicates whether a key with the given name exists in the collection
            </summary>
            <param name="boKeyName">The key name</param>
            <returns>Returns true if so, false if not</returns>
        </member>
        <member name="M:Habanero.Base.BOKeyCol.GetEnumerator">
            <summary>
            Returnst the key collection's enumerator
            </summary>
            <returns>Returns the enumerator</returns>
        </member>
        <member name="P:Habanero.Base.BOKeyCol.Item(System.String)">
            <summary>
            Provides an indexing facility so that this collection can
            be accessed with square brackets like an array
            </summary>
            <param name="boKeyName">The key name</param>
            <returns>Returns the BOKey object found with that name, or null
            if nothing of that name is matched</returns>
        </member>
        <member name="P:Habanero.Base.BOKeyCol.Count">
            <summary>
            Gets the number of keys in the collection
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.HabaneroArgumentException">
            <summary>
            Provides an exception to throw for an invalid argument
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor">
            <summary>
            Constructor to initialise a new exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor(System.String)">
            <summary>
            Constructor to initialise a new exception with the parameter name
            </summary>
            <param name="parameterName">The parameter name</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor(System.String,System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception with the parameter name,
            a message to display and an inner exception
            </summary>
            <param name="parameterName">The parameter name</param>
            <param name="message">The error message to display</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception with the parameter name
            and the inner exception
            </summary>
            <param name="parameterName">The parameter name</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new exception with the parameter name
            and an error message to display
            </summary>
            <param name="parameterName">The parameter name</param>
            <param name="message">The error message to display</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.HabaneroArgumentException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="P:Habanero.Base.Exceptions.HabaneroArgumentException.ParameterName">
            <summary>
            The Name of the Parameter that had the exception.
            </summary>
        </member>
        <member name="T:Habanero.Base.IDBNumberGenerator">
            <summary>
            An interface to model a generator of unique numbers. It keeps
            record of the last number retrieved and can provide a new
            unique number on request.  An example usage might be a till
            receipt number for a retail business.  Incrementing the numbers
            as they are dispensed is one means of achieving uniqueness.
            </summary>
            need to apply concurrency control to ensure new number not retrieved
            by another user before first user saves and updates number (could
            update immediately)
        </member>
        <member name="M:Habanero.Base.IDBNumberGenerator.GetNextNumberInt">
            <summary>
            Returns the next available unique number. One possible means
            of providing unique numbers is simply to increment the last one
            dispensed.
            </summary>
            <returns>Returns an integer</returns>
        </member>
        <member name="M:Habanero.Base.IDBNumberGenerator.GetUpdateTransaction">
            <summary>
            Creates a database transaction that updates the database to the
            last number dispensed, so the next number dispensed will be a
            fresh increment
            </summary>
            <returns>Returns an ITransactional object</returns>
        </member>
        <member name="T:Habanero.Base.IConnectionStringFactory">
            <summary>
            An interface describing a class that creates a connection string given various parameters
            </summary>
        </member>
        <member name="M:Habanero.Base.IConnectionStringFactory.GetConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Returns a connection string built from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.Base.IDatabaseLookupList">
            <summary>
            Lookup list that directly loads items from the Database using the specified sql string.
            This is generally only used in instances where this level of optimisation is required.
            </summary>
        </member>
        <member name="T:Habanero.Base.ILookupListWithClassDef">
            <summary>
             Some lookup lists are associated with ClassDefs in order to add new items to them easily
             This interface provides a base class for those that can be associated with a ClassDef.
            </summary>
        </member>
        <member name="T:Habanero.Base.ILookupList">
            <summary>
            An interface to model a lookup-list content provider
            </summary>
        </member>
        <member name="M:Habanero.Base.ILookupList.GetLookupList">
            <summary>
            Returns the contents of a lookup-list
            </summary>
            <returns>Returns a collection of string-Guid pairs</returns>
        </member>
        <member name="M:Habanero.Base.ILookupList.GetLookupList(Habanero.Base.IDatabaseConnection)">
            <summary>
            Returns the contents of a lookup-list using the database 
            connection provided
            </summary>
            <param name="connection">The database connection</param>
            <returns>Returns a collection of string-Guid pairs</returns>
        </member>
        <member name="M:Habanero.Base.ILookupList.GetIDValueLookupList">
             <summary>
             Returns the lookup list contents being held where the list is keyed on the list key 
              either a Guid, int or Business object i.e. the value being stored for the property.
             The display value can be looked up.
             </summary>
            <returns>The Key Value Lookup List</returns>
        </member>
        <member name="P:Habanero.Base.ILookupList.PropDef">
            <summary>
             The property definition that this lookup list is for
            </summary>
        </member>
        <member name="P:Habanero.Base.ILookupList.LimitToList">
            <summary>
             Returns true if the <see cref="T:Habanero.Base.ILookupList"/> should validate the value of the 
             <see cref="T:Habanero.Base.IBOProp"/> against the items in the <see cref="T:Habanero.Base.ILookupList"/>.
             Eg, if the BOProp's value is set to an
             item not in the list and this value is True, a validation error will occur upon save.  If this 
             value is set to false no validation will occur.
            </summary>
        </member>
        <member name="P:Habanero.Base.ILookupList.TimeOut">
            <summary>
            The TimeOut the time in Milliseconds before the cache expires. I.e. if the current time + Timeout is
            less than now then the lookup list will be reloaded else the currently loaded lookup list will be used. 
            </summary>
        </member>
        <member name="P:Habanero.Base.ILookupListWithClassDef.ClassDef">
            <summary>
             The ClassDef associated with this lookup list.
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseLookupList.AssemblyName">
            <summary>
            Gets and sets the assembly name for the class being sourced for data
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseLookupList.ClassName">
            <summary>
            Gets and sets the class name being sourced for data
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseLookupList.SqlString">
            <summary>
            Gets the sql statement which is used to specify which
            objects to load for the lookup-list
            </summary>
        </member>
        <member name="T:Habanero.Base.BOKeyEventArgs">
            <summary>
            Provides BOKey related arguments to an event
            </summary>
        </member>
        <member name="M:Habanero.Base.BOKeyEventArgs.#ctor(Habanero.Base.IBOKey)">
            <summary>
            Constructor to initialise a new event argument
            with the affected BOKey
            </summary>
            <param name="boKey">The affected BOKey</param>
        </member>
        <member name="P:Habanero.Base.BOKeyEventArgs.BOKey">
            <summary>
            Gets the BOKey affected in the event
            </summary>
        </member>
        <member name="T:Habanero.Util.IdNumberUtilities">
            <summary>
            Provides utilities to manipulate personal ID number data
            </summary>
        </member>
        <member name="M:Habanero.Util.IdNumberUtilities.GetDateOfBirth(System.String)">
            <summary>
            Calculates the date of birth of a person given a South African 
            ID number
            </summary>
            <param name="idNumber">The South African ID number, which must 
            include at least the first six characters</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown by the
            constructor of DateTime if the month or day are out of range
            </exception>
            <exception cref="T:System.FormatException">Thrown if the ID number is less 
            than six characters</exception>
        </member>
        <member name="T:Habanero.Base.ITextFileLoader">
            <summary>
            An interface to model a text file loader
            </summary>
        </member>
        <member name="M:Habanero.Base.ITextFileLoader.LoadTextFile(System.String)">
            <summary>
            Returns a TextReader object for the given file name
            </summary>
            <param name="fileName">The text file name</param>
            <returns>Returns a TextReader object</returns>
        </member>
        <member name="T:Habanero.Base.IPrimaryKey">
            <summary>
             This is an interface for the primary key for a business object.
             The Primary Key inherits from IBOKey and as such will contain a collection
             of IBOProps.
             The Primary Key Implements the Identity Field Pattern (Fowler (216) -
              'Patterns of Enterprise Application Architecture' - 
              'Saves the database ID Field in an object to maintain indentity between an in memory object and a database row')
              By allowing one or more field to be stored as the primary key this extends the Traditional Object relational mapping
               by allowing composite Primary keys (a common occurence when replacing existing systems).
               By mapping to Many IBoProps we can also track the dirty status and previous values of any
               the primary key properties and as such can handle cases of mutable primary keys. As a rule however it is always preferable
               for primary keys to be Immutable.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOKey">
            <summary>
            Contains the details of the key constraints for the particular
            business object. The Key constraint can be a primary or Alternate Key. 
            The primaryKey  or alternate key can both be either 
            composite/compound (more than one property) or not (only one property). 
            The property can also be a meaningFull Key e.g. Surname or a meaningLess Key e.g PersonID
            It is essentially a collection of Business Object Properties <see cref="T:Habanero.Base.IBOProp"/>
             objects e.g. FirstName and Surname 
             that behave together in some way (e.g. for a composite alternate
             key, the combination of properties is required to be unique).
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOKey.Contains(System.String)">
            <summary>
            Returns true if a property with this name is part of this key
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if it is contained</returns>
        </member>
        <member name="M:Habanero.Base.IBOKey.AsString_LastPersistedValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values at last persistence rather than any dirty values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.IBOKey.AsString_PreviousValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values held before the last time they were edited.  This
            method differs from AsString_LastPersistedValue in that the properties may have
            been edited several times since their last persistence.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOKey.AsString_CurrentValue">
            <summary>
            Returns a string containing all the properties and their values, using the current
            values of the properties.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOKey.GetBOPropCol">
            <summary>
            Returns a copy of the collection of properties in the key
            </summary>
            <returns>Returns a new BOProp collection</returns>
        </member>
        <member name="M:Habanero.Base.IBOKey.Add(Habanero.Base.IBOProp)">
            <summary>
            Adds a <see cref="T:Habanero.Base.IBOProp"/> to the key
            </summary>
            <param name="boProp">The BOProp to add</param>
        </member>
        <member name="E:Habanero.Base.IBOKey.Updated">
            <summary>
            Indicates that the value held by one of the properties in the
            key has been changed
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOKey.Count">
            <summary>
            Returns the number of BOProps in this key.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOKey.KeyDef">
            <summary>
            Gets the key definition for this key
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOKey.HasAutoIncrementingProperty">
            <summary>
            Indicates whether any of the properties of this key are auto incrementing.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOKey.KeyName">
            <summary>
            Returns the key name
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOKey.Item(System.String)">
            <summary>
            Provides an indexing facility so the properties can be accessed
            with square brackets like an array
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the matching BOProp object or null if not found
            </returns>
        </member>
        <member name="P:Habanero.Base.IBOKey.Item(System.Int32)">
            <summary>
            Provides an indexing facility so the properties can be accessed
            with square brackets like an array
            </summary>
            <param name="index">The index position of the item to retrieve</param>
            <returns>Returns the matching BOProp object or null if not found
            </returns>
        </member>
        <member name="M:Habanero.Base.IPrimaryKey.GetAsGuid">
            <summary>
            Returns the ID as a Guid in cases where the <see cref="T:Habanero.Base.IBusinessObject"/> is using a Guid object ID./&gt;
            </summary>
            <returns>Returns a Guid</returns>
        </member>
        <member name="M:Habanero.Base.IPrimaryKey.SetObjectGuidID(System.Guid)">
            <summary>
            Sets the object's ID this is used when a new object is constructed. 
            The object is given a unique identifier.
            If the object is later loaded from the database then this ID is replaced by the Database ID.
            If the <see cref="T:Habanero.Base.IBusinessObject"/> has an object ID 
            (i.e. Its primary key in the database is a Guid) then 
            a new object will be inserted into the database using this Guid Value for the ID Field.
            </summary>
            <param name="id">The ID to set to</param>
        </member>
        <member name="M:Habanero.Base.IPrimaryKey.GetAsValue">
            <summary>
            Returns the ID as a Value:-
            <li>"In cases where the <see cref="T:Habanero.Base.IBusinessObject"/>
              has an ID with a single property this will return the value of the property.</li>
            <li>"In cases where the <see cref="T:Habanero.Base.IBusinessObject"/>
              has an ccomposite ID (i.e. with more than one property) this will return a list with the values of the properties.</li>
            </summary>
            <returns>Returns an object</returns>
        </member>
        <member name="P:Habanero.Base.IPrimaryKey.IsGuidObjectID">
            <summary>
            Returns true if the primary key is a propery the object's ID, that is,
            the primary key is a single discrete property that is an immutable Guid and serves as the ID.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKey.IsCompositeKey">
            <summary>
             Returns true if the primary key is a composite Key (i.e. if it consists of more than one property)
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKey.ObjectID">
            <summary>
             The globally unique object identifier for the object that this Primary Key represents. 
             This is the implementation of a fundamental Object Oriented concept 
             that every object should be globally uniquely identifiable.
             The value returned from this property will be the actual value of the primary key property 
             for objects with a <see cref="T:System.Guid"/> id, or it will be a newly created <see cref="T:System.Guid"/> 
             for objects with composite or non-guid primary keys.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKey.PreviousObjectID">
            <summary>
             Returns the Previous Object ID this is only for new object typically with composite keys.
               that are assigned an object id and then persisted
               and then loaded from the database and the object is is updated to the 
               value from the database. The previous Object ID is then used by the object manager,
               collection, dataset provider to update the ID for the object.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKey.BusinessObject">
            <summary>
            The Business Object that this PrimaryKey is for.
            </summary>
        </member>
        <member name="T:Habanero.Base.IKeyDef">
            <summary>
            The IKeyDef is a definition of an <see cref="T:Habanero.Base.IBusinessObject"/> key.
            It is essentially a key name and a collection of property 
            definitions that place certain limitations on the data
            that the key can hold.  The property definitions can also relate
            together in some way (e.g. for a composite alternate 
            key, the combination of properties is required to be unique).
            </summary>
        </member>
        <member name="M:Habanero.Base.IKeyDef.Add(Habanero.Base.IPropDef)">
            <summary>
            Adds a property definition to the collection of definitions.
            The object to be added cannot be null.  If a key name was not
            originally provided at instantiation of the key definition, then
            the new property definition's name will be appended to the key name.
            </summary>
            <param name="propDef">The PropDef object to add</param>
            <exeption cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Will throw an exception
            if the argument is null</exeption>
        </member>
        <member name="M:Habanero.Base.IKeyDef.CreateBOKey(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new business object key (BOKey) using this key
            definition and its property definitions
            </summary>
            <param name="lBOPropCol">The master property collection</param>
            <returns>Returns a new BOKey object that mirrors this
            key definition</returns>
        </member>
        <member name="M:Habanero.Base.IKeyDef.Clear">
            <summary>
            Clears all <see cref="T:Habanero.Base.IPropDef"/> objects.
            </summary>
        </member>
        <member name="P:Habanero.Base.IKeyDef.IgnoreIfNull">
            <summary>
            A method used by BOKey to determine whether to check for
            duplicate keys.  If true, then the uniqueness check will be ignored
            if any of the properties making up the key are null.<br/>
            NB: If the BOKey is a primary key, then this cannot be
            set to true.
            </summary>
        </member>
        <member name="P:Habanero.Base.IKeyDef.KeyName">
            <summary>
            Returns the key name for this key definition - this key name is built
            up through a combination of the key name and the property names
            </summary>
        </member>
        <member name="P:Habanero.Base.IKeyDef.Message">
            <summary>
            Gets and sets the message to show to the user if a key validation
            fails.  A default message will be provided if this is nto set.
            </summary>
        </member>
        <member name="P:Habanero.Base.IKeyDef.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection of property
            definitions that belong to the key, so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the property stored under that property name</returns>
        </member>
        <member name="P:Habanero.Base.IKeyDef.Item(System.Int32)">
            <summary>
            Provides an indexing facility for the collection of property
            definitions that belong to the key, so that items
            in the collection can be accessed like an array. The order is
            always the same, but not determinable
            </summary>
            <param name="index">The index of the property</param>
            <returns>Returns the property stored under that index</returns>
        </member>
        <member name="P:Habanero.Base.IKeyDef.Count">
            <summary>
            Returns a count of the number of property definitions held
            in this key definition
            </summary>
        </member>
        <member name="T:Habanero.Base.IClassDef">
            <summary>
            Defines the business object class <see cref="T:Habanero.Base.IBusinessObject"/>, 
              its properties <see cref="P:Habanero.Base.IClassDef.PropDefcol"/>,
              their related property rules <see cref="T:Habanero.Base.IPropRule"/>,
              its Primary and Alternate keys <see cref="T:Habanero.Base.IPrimaryKey"/> <see cref="T:Habanero.Base.IBOKey"/>, 
              its relationships <see cref="T:Habanero.Base.IRelationship"/>,
              any inheritance relationships
              and the mappings of the <see cref="T:Habanero.Base.IBusinessObject"/> to the user inteface.
            <br/>
            The Definition includes the mapping of the <see cref="T:Habanero.Base.IBusinessObject"/> 
              its properties and its relationships to the Database tables and fields.
            <br/>
            The Class Definition (ClassDef) is loaded from the ClassDef.xml file at application startup.
            <br/>
            The Class Definition class along with the ClassDef.xml implements the pattern
              MetaData Mapper (Fowler - (306) 'Patterns of Enterprise Application Architecture').
            <br/>
            Required data is:
            <ul>
            <li>The primary key, which is the object identifier that uniquely
                identifies the object in the database and object manager.
                _Note that under Object-Oriented development philosophy, this
                key is universally unique and should be indepedendent of the
                values of the object, which differs somewhat from relational
                database design.  However, the architecture has been extended
                to support traditional composite keys in order to accomodate
                some clients' requirements.</li>
            <li>All the properties and property types of the object that must
                be recovered or persisted to the database.</li>
            <li>All the relationships of the object which it must manage.</li>
            </ul>
            </summary>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetPropDef(System.String)">
            <summary>
            Searches the property definition collection and returns the 
            property definition for the property with the name provided.
            </summary>
            <param name="propertyName">The property name in question</param>
            <returns>Returns the property definition if found, or
            throws an error if not</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException">
            This exception is thrown if the property is not found</exception>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetPropDef(System.String,System.Boolean)">
            <summary>
            Searches the property definition collection and returns the 
            property definition for the property with the name provided.
            </summary>
            <param name="propertyName">The property name in question</param>
            <param name="throwError">Should an error be thrown if the property is not found</param>
            <returns>Returns the property definition if found, or
            throw an error if <paramref name="throwError"/> is true,
            otherwise return null</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException">
            This exception is thrown if the property is not found and 
            <paramref name="throwError"/> is true</exception>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetPropDef(Habanero.Base.Source,System.String,System.Boolean)">
            <summary>
             Returns a particular property definition for a class definition.
            </summary>
            <param name="source"></param>
            <param name="propertyName"></param>
            <param name="throwError"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetLookupList(System.String)">
            <summary>
            Searches the property definition collection and returns 
            the lookup-list found under the property with the
            name specified.  Also checks the super-class.
            </summary>
            <param name="propertyName">The property name in question</param>
            <returns>Returns the lookup-list if the property is
            found, or a NullLookupList object if not</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.CreateNewBusinessObject">
            <summary>
            Creates a new business object using the default class definition for the type linked to this <see cref="T:Habanero.Base.IClassDef"/>
            or using this particular class definition (in the case where you might have more than one class definition for one C#
            type, useful for user defined types).  If this <see cref="T:Habanero.Base.IClassDef"/> has a <see cref="P:Habanero.Base.IClassDef.TypeParameter"/> then
            the instantiation will happen with the <see cref="T:Habanero.Base.IClassDef"/> passed in as a parameter to the <see cref="T:Habanero.Base.IBusinessObject"/>
            constructor.
            Note_ that this means the business object being created must have a constructor that takes a <see cref="T:Habanero.Base.IClassDef"/>,
            passing this through to the base class as follows:
            <code>
            public class Entity
            {
               public Entity() {}
               public Entity(ClassDef def): base(def) { }
            }
            </code>
            </summary>
            <returns>Returns the new object</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetTableName(Habanero.Base.IPropDef)">
            <summary>
            Returns the name of the table that applies to the propdef given, taking into allowance
            any inheritance structure.
            </summary>
            <param name="propDef">The propdef to map to a table name. This propdef must be part of this classdef Hierarchy</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetPropertyType(System.String)">
            <summary>
             Gets the type of the specified property for this classDef.
             The specified property can also have a 
             format like the custom properties for a UiGridColumn or UiFormField def.
             eg: MyRelatedBo.MyFurtherRelatedBo|MyAlternateRelatedBo.Name.
             The PropType can also be determined in cases where the
             property name is a reflective prop i.e. there is no
             PropDef associated with it.
            </summary>
            <param name="propertyName">The property to get the type for.</param>
            <returns>The type of the specified property</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.CreatePropertyComparer``1(System.String)">
            <summary>
             Creates a property comparer for the given property
             The specified property can also have a format like the custom properties for a UiGridColumn or UiFormField def.
             eg: MyRelatedBo.MyFurtherRelatedBo|MyAlternateRelatedBo.Name
            </summary>
            <param name="propertyName">The property to get the type for.</param>
            <returns>The type of the specified property</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetTableName">
            <summary>
            Returns the table name for this class
            </summary>
            <returns>Returns the table name of first real table for this class.</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.IsUsingClassTableInheritance">
            <summary>
            Indicates whether ClassTableInheritance is being used. See
            the ORMapping enumeration for more detail.
            </summary>
            <returns>Returns true if so, or false if there is no
            super class or another type of inheritance is being used</returns>
        </member>
        <member name="M:Habanero.Base.IClassDef.GetRelationship(System.String)">
            <summary>
            Searches the relationship definition collection and returns 
            the relationship definition found under the
            relationship with the name specified.
            </summary>
            <param name="relationshipName">The relationship name in question</param>
            <returns>Returns the relationship definition if found, 
            or null if not found</returns>
        </member>
        <member name="P:Habanero.Base.IClassDef.TableName">
            <summary>
            The table this classdef maps to, if applicable.
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.ClassType">
            <summary>
            The type of the business object that this class definition is for.
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.PropDefcol">
            <summary>
            The collection of property definitions
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.PropDefColIncludingInheritance">
            <summary>
            The collection of property definitions for this
            class and any properties inherited from parent classes
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.AssemblyName">
            <summary>
            The name of the assembly for the class definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.ClassNameFull">
            <summary>
            The full name of the class type for the class definition (including the namespace)
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.ClassName">
            <summary>
            The name of the class type for the class definition (excluding the namespace, but including the type parameter if applicable)
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.ClassNameExcludingTypeParameter">
            <summary>
            The name of the class type for the class definition (excluding the namespace and the type parameter).
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.TypeParameter">
            <summary>
            The type parameter for this classdef (which allows there to be multiple classdefs per .net type as long
            as they have unique type parameters).
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.RelationshipDefCol">
            <summary>
            The collection of relationship definitions
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.SuperClassDef">
            <summary>
            Gets and sets the super-class of this class definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.ClassID">
            <summary>
             The ClassID that identifies this Class in the case where the class is loaded from a database.
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.Module">
            <summary>
             The module name that identifies this class for the case of building a menu for the standard menu editor.
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.DisplayName">
            <summary>
             The display name for the class
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.PrimaryKeyDef">
            <summary>
            The primary key definition for this class definition.
            Retrieves the primary key definition for this class, traversing 
            the SuperClass structure to get the primary key definition if necessary
             </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.KeysCol">
            <summary>
            The collection of key definitions
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.UIDefCol">
            <summary>
            The collection of user interface definitions
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.AllChildren">
            <summary>
            Returns all children of this class based on the loaded inheritance hierachies
            </summary>
        </member>
        <member name="P:Habanero.Base.IClassDef.SuperClassClassDef">
            <summary>
            Returns this Classes Base/super Class's ClassDef if there is one null otherwise.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectDeletor">
            <summary>
             Provides a controller that deletes business objects.  Where used, this
             can be overridden with a customised version.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectDeletor.DeleteBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
             Deletes the given business object
            </summary>
            <param name="businessObject">The business object to delete</param>
        </member>
        <member name="T:Habanero.Base.DateTimeNow">
            <summary>
             This is a wrapper class for DateTime.Now. This is used by search and filter criteria to build up a search Criteria object.
             For loading the appropriate objects from the collection.
            </summary>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.CompareTo(System.Object)">
            <summary>
            Compares the current instance with another object of the same type.
            </summary>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than obj. Zero This instance is equal to obj. Greater than zero This instance is greater than obj. 
            </returns>
            <param name="obj">An object to compare with this instance. </param>
            <exception cref="T:System.ArgumentException">obj is not the same type as this instance. </exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.CompareTo(System.DateTime)">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. 
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.ResolveToValue">
            <summary>
             Resolved the instance class to a value of type DateTime.
            </summary>
            <returns>The value that the instance class is resolved to.</returns>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.ToString">
            <summary>
             Returns a ToString of the Value (Today).
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.DateTimeNow.Habanero#Base#IResolvableToValue{System#Object}#ResolveToValue">
            <summary>
             Resolved the instance class to a value.
            </summary>
            <returns>The value that the instance class is resolved to.</returns>
        </member>
        <member name="P:Habanero.Base.DateTimeNow.Value">
            <summary>
             Returns the current Today value from the DateTime object.
            </summary>
        </member>
        <member name="T:Habanero.Base.DateTimeNowFixed">
            <summary>
             This is a wrapper class for DateTime.Now when you have a fixed DateTimeNow.
            </summary>
        </member>
        <member name="M:Habanero.Base.DateTimeNowFixed.#ctor(System.DateTime)">
            <summary>
             Constructs DateTimeNow with a fixed DateTime.
            </summary>
            <param name="dateTimeNow"></param>
        </member>
        <member name="T:Habanero.Base.NullProgressIndicator">
            <summary>
            Provides a null progress indicator that does nothing with the inputs
            it receives
            </summary>
        </member>
        <member name="T:Habanero.Base.IProgressIndicator">
            <summary>
            An interface to model a progress indicator that informs the user
            how much progress has been made in completing a task
            </summary>
        </member>
        <member name="M:Habanero.Base.IProgressIndicator.UpdateProgress(System.Int32,System.Int32,System.String)">
            <summary>
            Updates the indicator with progress information
            </summary>
            <param name="amountComplete">The amount complete already</param>
            <param name="totalToComplete">The total amount to be completed</param>
            <param name="description">A description</param>
        </member>
        <member name="M:Habanero.Base.IProgressIndicator.Complete">
            <summary>
            Sets the indicator to completion status
            </summary>
        </member>
        <member name="M:Habanero.Base.NullProgressIndicator.#ctor">
            <summary>
            Constructor to initialise a new indicator
            </summary>
        </member>
        <member name="M:Habanero.Base.NullProgressIndicator.UpdateProgress(System.Int32,System.Int32,System.String)">
            <summary>
            Does nothing, so the parameters can be set to null
            </summary>
        </member>
        <member name="M:Habanero.Base.NullProgressIndicator.Complete">
            <summary>
            Completes the progress, in this case doing nothing
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectInitialiser">
            <summary>
            An interface to model a business object initialiser: A business object initialiser is used by the Habanero framework's standard forms
             and grids to initialise a new object with data. There are default object initialisers that will be used in the case where
             a custom initialiser is not specified. 
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectInitialiser.InitialiseObject(Habanero.Base.IBusinessObject)">
            <summary>
            Initialises the given object
            </summary>
            <param name="objToInitialise">The object to initialise</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectInitialiser.InitialiseDataRow(System.Data.DataRow)">
            <summary>
            Initialises a DataRow object
            </summary>
            <param name="row">The DataRow object to initialise</param>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectInitialiser`1">
            <summary>
            An interface to model a business object initialiser: A business object initialiser is used by the Habanero framework's standard forms
             and grids to initialise a new object with data. There are default object initialisers that will be used in the case where
             a custom initialiser is not specified. 
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectInitialiser`1.InitialiseObject(`0)">
            <summary>
            Initialises the given object
            </summary>
            <param name="objToInitialise">The object to initialise</param>
        </member>
        <member name="T:Habanero.Base.IExceptionNotifier">
            <summary>
            An interface to model a tool that notifies the user of an exception
            </summary>
        </member>
        <member name="M:Habanero.Base.IExceptionNotifier.Notify(System.Exception,System.String,System.String)">
            <summary>
            Notifies the user of an exception that has occurred
            </summary>
            <param name="ex">The exception</param>
            <param name="furtherMessage">Any further error messages</param>
            <param name="title">The title</param>
        </member>
        <member name="P:Habanero.Base.IExceptionNotifier.ExceptionMessage">
            <summary>
             The last exception logged by the exception notifier
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIFormTab">
            <summary>
            Provides an interface for a Form tab - that is, a tab that contains one or more columns of fields on it.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormTab.Add(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Adds a column definition to the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormTab.Remove(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Removes a column definition from the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormTab.Contains(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Checks if a column definition is in the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormTab.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormTab.Name">
            <summary>
            Gets and sets the tab name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormTab.UIFormGrid">
            <summary>
            Gets and sets the UIFormGrid definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormTab.UIForm">
            <summary>
            Returns the <see cref="P:Habanero.BO.ClassDefinition.IUIFormTab.UIForm"/> that this <see cref="!:UIFormTab"/> is defined for.
            </summary>
        </member>
        <member name="T:Habanero.Base.IPropRule">
            <summary>
            Provides an interface for property rules that test the validity of
            a property value.  If you would like to implement your own property
            rule checker, implement this interface or inherit from PropRuleBase.
            In the class definitions, in the 'rule'
            element under the relevant 'property', specify the class and assembly
            of your newly implemented class.
            The Property rules for the <see cref="T:Habanero.Base.IBusinessObject"/> are implemented
             using the GOF Strategy Pattern.
            </summary>
        </member>
        <member name="M:Habanero.Base.IPropRule.SetParameter(System.String,System.Object)">
            <summary>
             You can set any parameter for a propRule
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
        </member>
        <member name="M:Habanero.Base.IPropRule.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.Base.IPropRule.Name">
            <summary>
            Returns the rule name
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropRule.Message">
            <summary>
            Returns the error message for if the rule fails.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropRule.Parameters">
            <summary>
            Returns the list of parameters to the rule - individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropRule.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            This method must be implemented by creating a list of the names
            of each type of rule available for the class, such as "min" and
            "max" for integers.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.Base.ISqlFormatter">
            <summary>
             Used to store specific SQL formatting information for any specified database.
             Typically databases differ in the characters used to differentiate fields and tables e.g. [ and ] for ms sql and
             ` for MySQL.
            </summary>
        </member>
        <member name="M:Habanero.Base.ISqlFormatter.DelimitField(System.String)">
            <summary>
             using the field delimiters it delimites the field name e.g. MyField will be returned as [MyField]
            </summary>
            <param name="fieldName">The table name to delimited</param>
            <returns>The delimited field name</returns>
        </member>
        <member name="M:Habanero.Base.ISqlFormatter.DelimitTable(System.String)">
            <summary>
             using the field delimiters it delimites the table name e.g. MyTable will be returned as [MyTable]
            </summary>
            <param name="tableName">The table name to delimited</param>
            <returns>The delimited table name</returns>
        </member>
        <member name="M:Habanero.Base.ISqlFormatter.PrepareValue(System.Object)">
            <summary>
            Prepares the value to be converted to a format appropriate for sql
            </summary>
            <param name="objValue">The value to prepare</param>
            <returns>Returns the reformatted object</returns>
        </member>
        <member name="M:Habanero.Base.ISqlFormatter.GetLimitClauseCriteriaForEnd(System.Int32)">
            <summary>
            Creates a limit clause from the limit provided, in the format of:
            "limit [limit]" (eg. "limit 3")
            </summary>
            <param name="limit">The limit - the maximum number of rows that
            can be affected by the action</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.ISqlFormatter.GetLimitClauseCriteriaForBegin(System.Int32)">
            <summary>
            Returns the beginning limit clause with the limit specified
            </summary>
            <param name="limit">The limit</param>
            <returns>Returns a string</returns>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectList">
            <summary>
            Models a collection of business objects.  This interface has been provided to
            circumvent the strong typing of BusinessObjectCollection.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Find(System.Guid)">
            <summary>
            Finds a business object that has the key string specified.<br/>
            Note_: the format of the search term is strict, so that a Guid ID
            may be stored as "boIDname=########-####-####-####-############".
            In the case of such Guid ID's, rather use the FindByGuid() function.
            Composite primary keys may be stored otherwise, such as a
            concatenation of the key names.
            </summary>
            <param name="key">The orimary key as a string</param>
            <returns>Returns the business object if found, or null if not</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.IndexOf(Habanero.Base.IBusinessObject)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"></see>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"></see>.</param>
            <returns>
            The index of item if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Add(Habanero.Base.IBusinessObject)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Contains(Habanero.Base.IBusinessObject)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"></see> contains a specific value.
            </summary>
            <returns>
            True if item is found in the <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.CopyTo(Habanero.Base.IBusinessObject[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"></see> to an <see cref="T:System.Array"></see>, starting at a particular <see cref="T:System.Array"></see> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"></see>. The <see cref="T:System.Array"></see> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">arrayIndex is less than 0.</exception>
            <exception cref="T:System.ArgumentNullException">Array is null.</exception>
            <exception cref="T:System.ArgumentException">Array is multidimensional or arrayIndex
            is equal to or greater than the length of array.-or-The number of elements in
            the source <see cref="T:System.Collections.Generic.ICollection`1"></see> is 
            greater than the available space from arrayIndex to the end of the destination array, or 
            Type T cannot be cast automatically to the type of the destination array.</exception>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Remove(Habanero.Base.IBusinessObject)">
            <summary>
            Removes the first occurrence of a specific object from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
            <returns>
            True if item was successfully removed from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            This method also returns false if item is not found in the original
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Sort(System.String,System.Boolean,System.Boolean)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="propertyName">The property name to sort on</param>
            <param name="isBoProperty">Whether the property is a business
            object property</param>
            <param name="isAscending">Whether to sort in ascending order, set
            false for descending order</param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectList.Sort(System.Collections.IComparer)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="comparer">The property name to sort on</param>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectList.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"></see>.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1"></see> is read-only.</exception>
            <returns>The element at the specified index.</returns>
        </member>
        <member name="T:Habanero.Base.FilterModes">
            <summary>
            Provides filter modes that can be set up for a grid.
            The default options is FilterModes.Filter.
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterModes.Filter">
            <summary>
            Hides rows in a loaded collection that do not meet the filter criteria.  This is a
            preferred option if the size of the unfiltered collection is not expected to cause a
            deterioration in the performance of the system.
            </summary>
        </member>
        <member name="F:Habanero.Base.FilterModes.Search">
            <summary>
            Reloads the collection shown in the grid, using the criteria as set by the filter.
            This is a useful option if the collection in the grid is potentially large.
            </summary>
        </member>
        <member name="T:Habanero.Base.IFilterDef">
            <summary>
            Provides an inteface for a filter definition. See <see cref="T:Habanero.Base.IFilterDef"/>.  Consists of a number of <see cref="T:Habanero.Base.IFilterPropertyDef"/> objects and
            a mode (see <see cref="T:Habanero.Base.FilterModes"/>).
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterDef.FilterPropertyDefs">
            <summary>
            The list of <see cref="T:Habanero.Base.IFilterPropertyDef"/>s which define each filter.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterDef.FilterMode">
            <summary>
            The mode of filtering, where <see cref="F:Habanero.Base.FilterModes.Filter"/> means to filter already loaded data, and 
            <see cref="F:Habanero.Base.FilterModes.Search"/> means to search via a query to the data store in the process of loading.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterDef.Columns">
            <summary>
            The number of columns to layout the filters in.  By default this is 0, and the layout used is that of a flow layout
            which simply adds controls until the right side of the container is reached and then moves to the next line.
            If this is set to a number greater than zero it will lay out the filter controls in that number of columns.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectRule">
            <summary>
            Provides an interface for BusinessObject rules that test the validity of
            a BusinessObject.  If you would like to implement your own BusinessObject
            rule checker, implement this interface.
            The BusinessObject rules for the <see cref="T:Habanero.Base.IBusinessObject"/> are implemented
             using the GOF Strategy Pattern.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectRule.IsValid">
            <summary>
            Indicates whether the property value is valid against the rules.
            Using <see cref="M:Habanero.Base.IBusinessObjectRule.IsValid(Habanero.Base.IBusinessObject)"/> is the recommended 
            practice since this allows Habanero to optimise the Loading of BusinessObjectRules.
            I.e. only one rule object needs to be loaded per Business Object Type (ClassDef).
            If the <see cref="M:Habanero.Base.IBusinessObjectRule.IsValid(Habanero.Base.IBusinessObject)"/> method is used otherwise this
            rule object will have to be created and loaded in memory for every single 
            Business Object of that Type.
            </summary>
            <returns>Returns true if valid</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectRule.IsValid(Habanero.Base.IBusinessObject)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectRule.Name">
            <summary>
            Returns the rule name
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectRule.Message">
            <summary>
            Returns the error message for if the rule fails.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectRule.ErrorLevel">
            <summary>
            The <see cref="P:Habanero.Base.IBusinessObjectRule.ErrorLevel"/> for this BusinessObjectRule e.g. Warning, Error. 
            </summary>
        </member>
        <member name="T:Habanero.Base.ISingleRelationshipDef">
            <summary>
            An Interface used to define a SingleRelationshipDef.
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelationshipDef">
            <summary>
            Defines the relationship between the ownming Business Object (<see cref="T:Habanero.Base.IBusinessObject"/> and the 
            related Business Object.
            This class collaborates with the <see cref="P:Habanero.Base.IRelationshipDef.RelKeyDef"/>, the <see cref="T:Habanero.Base.IClassDef"/> 
              to provide a definition Relationship. This class along with the <see cref="P:Habanero.Base.IRelationshipDef.RelKeyDef"/> and 
              <see cref="T:Habanero.Base.IRelPropDef"/> provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            The RelationshipDef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelationshipDef (Relationship Definition) is used bay a <see cref="T:Habanero.Base.IClassDef"/> to define a particular
              relationship. Each relationship has a relationship name e.g. A relationship betwee a person and a department may
              manager, employee etc. The related Class e.g. A Department definition would contain a relationship definition to
              a Person Class. (to allow for the person class to be in a different assemply the assembly name is also stored.
              The list of properties the define the Foreign key mapping of relationship between these two classes is stored using
              the <see cref="P:Habanero.Base.IRelationshipDef.RelKeyDef"/>. The Relationship also stores additional information such as <see cref="P:Habanero.Base.IRelationshipDef.DeleteParentAction"/>
              and order critieria. The <see cref="P:Habanero.Base.IRelationshipDef.DeleteParentAction"/> defines any constraints that the relationship should provide 
              in the case of the parent (relationship owner e.g. Depertment in our example) being deleted. E.g. If the department (parent)
              is being deleted you may want to delete all related object or prevent delete if there are any related objects.
              In cases where there are many related objects e.g. A Department can have many Employees the relationship may be required to 
              load in a specifically order e.g. by employee number. The order criteria is used for this.
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelationshipDef.CreateRelationship(Habanero.Base.IBusinessObject,Habanero.Base.IBOPropCol)">
            <summary>
            Create and return a new Relationship based on the relationship definition.
            </summary>
            <param name="owningBo">The business object that owns
            this relationship e.g. The department</param>
            <param name="lBOPropCol">The collection of properties of the Business object</param>
            <returns>The new relationship object created</returns>
        </member>
        <member name="M:Habanero.Base.IRelationshipDef.CheckCanAddChild(Habanero.Base.IBusinessObject)">
            <summary>
             Checks to see if the child can be added to the relationship
            </summary>
            <param name="bo"></param>
        </member>
        <member name="M:Habanero.Base.IRelationshipDef.CheckCanRemoveChild(Habanero.Base.IBusinessObject)">
            <summary>
             Checks to see if the child be removed to the relationship
            </summary>
            <param name="bo"></param>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelationshipName">
            <summary>
            A name for the relationship e.g. Employee, Manager.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelatedObjectAssemblyName">
            <summary>
            The assembly name of the related object type. In cases where the related object is in a different assebly
            the object will be constructed via reflection.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelatedObjectClassName">
            <summary>
            The class name of the related object type.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelKeyDef">
            <summary>
            The related key definition. <see cref="P:Habanero.Base.IRelationshipDef.RelKeyDef"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.KeepReferenceToRelatedObject">
            <summary>
            Whether to keep a reference to the related object or to reload every time the relationship is called.
            Could be false for memory-intensive applications.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.DeleteParentAction">
            <summary>
            Provides specific instructions with regards to deleting a parent
            object.  See the <see cref="P:Habanero.Base.IRelationshipDef.DeleteParentAction"/> enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.InsertParentAction">
            <summary>
            Provides specific instructions with regards to inserting a new related
            Business object.  See the <see cref="P:Habanero.Base.IRelationshipDef.InsertParentAction"/> enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.OrderCriteria">
            <summary>
             The order by clause that the related object will be sorted by.
             In the case of a single relationship this will return a null string
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.OrderCriteriaString">
            <summary>
             The order by clause that the related object will be sorted by.  This is the raw order criteria as loaded or set. Use <see cref="P:Habanero.Base.IRelationshipDef.OrderCriteria"/>
             to get the parsed criteria object.   In the case of a single relationship this will return a null string
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelationshipType">
            <summary>
             Returns the specific action that the relationship must carry out in the case of a child being added to it.
             <see cref="P:Habanero.Base.IRelationshipDef.RelationshipType"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.ReverseRelationshipName">
            <summary>
             The name of the reverse relationship.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.OwningBOHasForeignKey">
            <summary>
             Returns true where the owning business object has the foreign key for this relationship false otherwise.
             This is used to differentiate between the two sides of the relationship.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelatedObjectClassDef">
            <summary>
            The <see cref="T:Habanero.Base.IClassDef"/> for the related object.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelatedObjectTypeParameter">
            <summary>
            The type parameter of the related object type.  This allows you to relate a class with another one that is
            type parametrised (ie has multiple classdefs for one .net type)
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.TimeOut">
            <summary>
            The timout in milliseconds. 
            The collection of Business Objects will not be automatically refreshed 
            from the DB if the timeout has not expired
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.RelatedObjectClassNameWithTypeParameter">
            <summary>
            The related class name including its type parameter (if any)
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.IsOneToMany">
            <summary>
             Returns true if this is a Multiple Relationship and the Reverse is a single relationship
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.IsManyToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Multiple relationship
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.IsOneToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Single relationship
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.IsCompulsory">
            <summary>
            Returns true if this RelationshipDef is compulsory.
            This relationship def will be considered to be compulsory if this
            <see cref="P:Habanero.Base.IRelationshipDef.OwningBOHasForeignKey"/> and all the <see cref="T:Habanero.Base.IPropDef"/>'s that make up the 
            <see cref="T:Habanero.Base.IRelKeyDef"/> are compulsory
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.OwningClassDef">
            <summary>
             Gets and Sets the Class Def to the ClassDefinition that owns this Relationship Def.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDef.OwningClassName">
            <summary>
            Returns the ClassName of the <see cref="T:Habanero.Base.IClassDef"/> that owns this <see cref="T:Habanero.Base.IRelationshipDef"/>
            </summary>
        </member>
        <member name="T:Habanero.Base.ISingleValueDef">
            <summary>
            This is a public interface that can be used by any Definition that implements a single Value
            the two obvious Definitions that implement a Single Value are
            1) IPropDef
            2) SingleRelationshipDef
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.DisplayName">
            <summary>
             The display name for the property.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.Description">
            <summary>
             The description of the property.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.PropertyTypeName">
            <summary>
            The name of the property type
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.PropertyType">
            <summary>
            The type of the property, e.g. string
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.Compulsory">
            <summary>
             Is this property compulsary or not
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.PropertyName">
            <summary>
            The name of the property, e.g. surname
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.ClassDef">
            <summary>
             Returns the class definition that this property definition is owned by.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.DisplayNameFull">
            <summary>
             Returns the full display name for a property definition.
             If there is a unit of measure then it is appended to the display name in brackets e.g. DisplayName (UOM).
             If there is no display name then it will return the PascalCase Delimited property Name i.e. Display Name.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.ClassName">
            <summary>
             The name of the Class if this PropDef is associated with a ClassDef.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISingleValueDef.PropertyTypeAssemblyName">
            <summary>
            The name of the property type assembly
            </summary>
        </member>
        <member name="T:Habanero.Util.LongText">
            <summary>
            Manages a long string that, when stored in the database, will need 
            to be stored differently according to the database used.
            In MySql this type is usually reflected by the data type 'LongText'.
            In SqlServer this type is usually reflected by the data type 'Text'.
            In Oracle this type is usually reflected by the data type 'CLOB'.
            In Access this type is usually reflected by the data type 'Memo'.
            It is the Oracle data type in patricular that needs special treatment.
            </summary>
        </member>
        <member name="T:Habanero.Base.CustomProperty">
            <summary>
            A super-class for a property that may be customised before
            persistance to the database
            </summary>
        </member>
        <member name="M:Habanero.Base.CustomProperty.#ctor(System.Object,System.Boolean)">
            <summary>
            Constructor to initialise the property
            </summary>
            <param name="value">The value to customise</param>
            <param name="isLoading">Whether the value is being loaded from
            the database, rather than being prepared to send to the database.
            This might determine whether the object is in its normal or
            customised form.
            </param>
        </member>
        <member name="M:Habanero.Base.CustomProperty.GetPersistValue">
            <summary>
            Returns the property in appropriate form to be persisted to the
            database
            </summary>
            <returns>Returns the property being held</returns>
        </member>
        <member name="M:Habanero.Util.LongText.#ctor(System.String)">
            <summary>
             Constructor to initialise a new long text string
            </summary>
            <param name="value">The long text string data</param>
        </member>
        <member name="M:Habanero.Util.LongText.#ctor(System.Object,System.Boolean)">
            <summary>
            Constructor to initialise a new long text string from the database or not
            </summary>
            <param name="value">The long text string data</param>
            <param name="isLoading">Is this value being loaded from the database</param>
        </member>
        <member name="M:Habanero.Util.LongText.GetHashCode">
            <summary>
            Returns the hashcode of the long text string
            </summary>
            <returns>Returns a hashcode integer</returns>
        </member>
        <member name="M:Habanero.Util.LongText.Equals(System.Object)">
            <summary>
            Indicates whether the contents of the given LongText object
            equal the contents of this object
            </summary>
            <param name="obj">The LongText object to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.Util.LongText.ToString">
            <summary>
            Returns the long text string
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Util.LongText.GetPersistValue">
            <summary>
            Returns the value that is to be persisted to the database.
            </summary>
            <returns>Returns the long text value</returns>
        </member>
        <member name="P:Habanero.Util.LongText.Value">
            <summary>
            Returns the value of the long text string
            </summary>
        </member>
        <member name="T:Habanero.Util.TextFileLoader">
            <summary>
            Provides a StreamReader to load a text file
            </summary>
        </member>
        <member name="M:Habanero.Util.TextFileLoader.LoadTextFile(System.String)">
            <summary>
            Returns a StreamReader object to load the specified file name
            </summary>
            <param name="fileName">The file name</param>
            <returns>Returns a StreamReader object</returns>
        </member>
        <member name="T:Habanero.Base.GlobalRegistry">
            <summary>
            Stores key global settings for an application
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.Settings">
            <summary>
            Gets and sets the application's settings storer, which stores
            database settings
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.UIExceptionNotifier">
            <summary>
            Gets and sets the application's exception notifier, which
            provides a means to communicate exceptions to the user
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.ApplicationName">
            <summary>
            Gets and sets the application name
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.ApplicationVersion">
            <summary>
            Gets and sets the application version as a string
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.DatabaseVersion">
            <summary>
            Gets and sets the database version as an integer
            </summary>
        </member>
        <member name="P:Habanero.Base.GlobalRegistry.SecurityController">
            <summary>
             Gets and sets the security controller for the application
            </summary>
        </member>
        <member name="T:Habanero.Base.ORMapping">
            <summary>
            An enumeration specifying the means used to preserve a class
            inheritance structure when writing to a database, since relational
            databases don't support inheritance.
            </summary>
        </member>
        <member name="F:Habanero.Base.ORMapping.ClassTableInheritance">
            <summary>
            Uses one database table per class in the inheritance structure.
            As per (Fowler (285) - 'Patterns of Enterprise Application Architecture')
            </summary>
        </member>
        <member name="F:Habanero.Base.ORMapping.SingleTableInheritance">
            <summary>
            Maps all fields of all classes of an inheritance structure into a single table.
            As per (Fowler (278) - 'Patterns of Enterprise Application Architecture')
            </summary>
        </member>
        <member name="F:Habanero.Base.ORMapping.ConcreteTableInheritance">
            <summary>
            Uses a table for each concrete class in the inheritance hierarchy.
            As per (Fowler (293) - 'Patterns of Enterprise Application Architecture')
            </summary>
        </member>
        <member name="T:Habanero.Base.ISelectQuery">
            <summary>
            A model of a Select Query that can be used to load data from a data store.  This includes the Fields to load, the source to load from
            (such as the database table name), the OrderCriteria to use (what fields must  be sorted on), the Criteria to use (only objects that
            match the given criteria will be loaded), and the number of objects to load (defined by the Limit).
            The SelectQuery provides an implementation of the QueryObject Pattern (Fowler (316) - 'Patterns of Enterprise Application Architecture'
              - 'An object that represents a database query'). The use of this object allows the Framework to generate the appropriate
              sql for any given database ase well as to load object from other data sources such as .xml or .csv files.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.Criteria">
            <summary>
            The Criteria to use when loading. Only objects that match these criteria will be loaded.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.Fields">
            <summary>
            The fields to load from the data store.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.Source">
            <summary>
            The source of the data. In a database query this would be the first table listed in the FROM clause.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.OrderCriteria">
            <summary>
            The fields to use to order a collection of objects when loading them.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.Limit">
            <summary>
            The number of objects to load
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.ClassDef">
            <summary>
            The classdef this select query corresponds to. This can be null if the select query is being used
            without classdefs, but if it is built using the QueryBuilder 
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.DiscriminatorCriteria">
            <summary>
            </summary>
        </member>
        <member name="P:Habanero.Base.ISelectQuery.FirstRecordToLoad">
            <summary>
             Gets and sets the first record to be loaded by the select query.
            </summary>
        </member>
        <member name="T:Habanero.Base.IPropertyComparer`1">
            <summary>
            Compares two business objects on the property specified 
            in the constructor using the specified generic type
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropertyComparer`1.PropertyName">
            <summary>
            Gets and sets the name of the property being compared on
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropertyComparer`1.Source">
            <summary>
            Gets and sets the source of data
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropertyComparer`1.PropertyType">
            <summary>
            Gets and sets the type of the property being compared on
            </summary>
        </member>
        <member name="T:Habanero.Base.ParameterType">
            <summary>
            An enumeration to list possible parameter types
            </summary>
        </member>
        <member name="F:Habanero.Base.ParameterType.String">
            <summary>
             parameter type is string.
            </summary>
        </member>
        <member name="F:Habanero.Base.ParameterType.Date">
            <summary>
             parameter type is Date
            </summary>
        </member>
        <member name="F:Habanero.Base.ParameterType.Number">
            <summary>
             parameter type is Numeric long, int, double etc
            </summary>
        </member>
        <member name="F:Habanero.Base.ParameterType.Bool">
            <summary>
             parameter type is boolean
            </summary>
        </member>
        <member name="T:Habanero.Base.IParameterSqlInfo">
            <summary>
            This interface is created so that any component that is using the 
            expression and needs to build up valid sql syntax, will be able to 
            replace the parameter name (BO property name) with 
            a table name and field name.
            </summary>
        </member>
        <member name="P:Habanero.Base.IParameterSqlInfo.ParameterName">
            <summary>
            The name in the expression tree to be updated
            </summary>
        </member>
        <member name="P:Habanero.Base.IParameterSqlInfo.TableName">
            <summary>
            The table name to be added to the parameter
            </summary>
        </member>
        <member name="P:Habanero.Base.IParameterSqlInfo.FieldName">
            <summary>
            The field name to be added to the parameter
            </summary>
        </member>
        <member name="P:Habanero.Base.IParameterSqlInfo.ParameterType">
            <summary>
            The parameter type to be added to the parameter
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectUpdateLog">
            <summary>
             This is an interface for creating implementations of update log actions 
             to perform when a business object is updated.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectUpdateLog.Update">
            <summary>
             Perform the log action for this Update Log class.
            </summary>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectCreator">
            <summary>
             A <see cref="T:Habanero.Base.IBusinessObjectCreator"/> that passes off its creation logic to a delegate passed in the constructor.
            </summary>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectCreator`1">
            <summary>
             A <see cref="T:Habanero.Base.IBusinessObjectCreator"/> that passes off its creation logic to a delegate passed in the constructor.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectCreator">
            <summary>
            Creates business objects.  This class provides the facility for a
            custom creator that overrides default behaviour when creating a
            business object.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectCreator.CreateBusinessObject">
            <summary>
            Creates the object, without editing or saving it.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectCreator`1.#ctor(Habanero.Base.DelegatedBusinessObjectCreator{`0}.CreateBusinessObjectDelegate)">
            <summary>
             Initialises the <see cref="T:Habanero.Base.DelegatedBusinessObjectCreator`1"/> with the specified delegate.
            </summary>
            <param name="createBusinessObjectDelegate">The delegate to be executed when CreateBusinessObject is called.</param>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectCreator`1.CreateBusinessObject">
            <summary>
            Creates the object, without editing or saving it.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectCreator`1.CreateBusinessObjectDelegate">
            <summary>
             The delegate for the CreateBusinessObject method.
            </summary>
             <returns>The newly created <see cref="T:Habanero.Base.IBusinessObject"/>.</returns>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectCreator.#ctor(Habanero.Base.DelegatedBusinessObjectCreator{Habanero.Base.IBusinessObject}.CreateBusinessObjectDelegate)">
            <summary>
             Initialises the <see cref="T:Habanero.Base.DelegatedBusinessObjectCreator"/> with the specified delegate.
            </summary>
            <param name="createBusinessObjectDelegate">The delegate to be executed when CreateBusinessObject is called.</param>
        </member>
        <member name="T:Habanero.Base.SqlFormatter">
            <summary>
             Used to store specific SQL formatting information for any specified database.
             Typically databases differ in the characters used to differentiate fields and tables e.g. [ and ] for ms sql and
             ` for MySQL.
            </summary>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
             Constructor of a sql formatter
            </summary>
            <param name="leftFieldDelimiter">The left field delimiter to be used for formatting a sql statement</param>
            <param name="rightFieldDelimiter">The right field delimiter to be used for formatting a sql statement</param>
            <param name="limitClauseAtBeginning"></param>
            <param name="limitClauseAtEnd"></param>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.DelimitField(System.String)">
            <summary>
             using the field delimiters it delimites the field name e.g. MyField will be returned as [MyField]
            </summary>
            <param name="fieldName">The table name to delimited</param>
            <returns>The delimited field name</returns>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.DelimitTable(System.String)">
            <summary>
             using the field delimiters it delimites the table name e.g. MyTable will be returned as [MyTable]
            </summary>
            <param name="tableName">The table name to delimited</param>
            <returns>The delimited table name</returns>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.GetLimitClauseCriteriaForEnd(System.Int32)">
            <summary>
            Creates a limit clause from the limit provided, in the format of:
            "limit [limit]" (eg. "limit 3")
            </summary>
            <param name="limit">The limit - the maximum number of rows that
            can be affected by the action</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.GetLimitClauseCriteriaForBegin(System.Int32)">
            <summary>
            Returns the beginning limit clause with the limit specified
            </summary>
            <param name="limit">The limit</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.SqlFormatter.PrepareValue(System.Object)">
            <summary>
            Prepares the value to be converted to a format appropriate for sql
            </summary>
            <param name="objValue">The value to prepare</param>
            <returns>Returns the reformatted object</returns>
        </member>
        <member name="P:Habanero.Base.SqlFormatter.LimitClauseAtEnd">
            <summary>
            Returns the Limit clause to be used at the end of a select statement e.g. for MySQL `LIMIT`
            </summary>
        </member>
        <member name="P:Habanero.Base.SqlFormatter.LimitClauseAtBeginning">
            <summary>
            Returns the Limit clause to be used at the beginning of a select statement e.g. for SQLServer `TOP`
            </summary>
        </member>
        <member name="P:Habanero.Base.SqlFormatter.LeftFieldDelimiter">
            <summary>
             The left field delimiter to be used for formatting a sql statement
            </summary>
        </member>
        <member name="P:Habanero.Base.SqlFormatter.RightFieldDelimiter">
            <summary>
             The right field delimiter to be used for formatting a sql statement
            </summary>
        </member>
        <member name="T:Habanero.Base.RSAPasswordCrypter">
            <summary>
            This class can only encrypt short messages, so is really only useful for encrypting
            passwords or similar short phrases.
            </summary>
        </member>
        <member name="M:Habanero.Base.RSAPasswordCrypter.#ctor(System.Security.Cryptography.RSA)">
            <summary>
             Constructor
            </summary>
            <param name="rsa"></param>
        </member>
        <member name="M:Habanero.Base.RSAPasswordCrypter.DecryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to decrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="M:Habanero.Base.RSAPasswordCrypter.EncryptString(System.String)">
            <summary>
            Returns the given string without carrying out any changes.
            </summary>
            <param name="value">The string to encrypt</param>
            <returns>Returns the unaltered string provided</returns>
        </member>
        <member name="T:Habanero.Base.ISqlStatement">
            <summary>
            An interface that models a sql statement
            </summary>
        </member>
        <member name="M:Habanero.Base.ISqlStatement.AddParameter(System.String,System.Object)">
            <summary>
            Adds a parameter value without appending the name of the parameter to the statement.
            </summary>
            <param name="paramName">The parameter name</param>
            <param name="paramValue">The value to assign</param>
            <returns>Returns a IDbDataParameter object</returns>
        </member>
        <member name="M:Habanero.Base.ISqlStatement.AddParameterToStatement(System.Object)">
            <summary>
            Adds a parameter to the sql statement, creating the parameter name and appending it to the statement
            </summary>
            <param name="obj">The parameter to add</param>
        </member>
        <member name="M:Habanero.Base.ISqlStatement.SetupCommand(System.Data.IDbCommand)">
            <summary>
            Sets up the IDbCommand object
            </summary>
            <param name="command">The command</param>
        </member>
        <member name="P:Habanero.Base.ISqlStatement.Statement">
            <summary>
            Gets and sets the sql statement
            </summary>
        </member>
        <member name="P:Habanero.Base.ISqlStatement.Parameters">
            <summary>
            Returns the list of parameters
            </summary>
        </member>
        <member name="T:Habanero.Base.IDatabaseConnection">
            <summary>
            An interface to model a class that manages a database connection 
            and executes sql commands
            </summary>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ErrorSafeConnectString">
            <summary>
            Returns a database connection string with the password removed
            for data security purposes
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.GetConnection">
            <summary>
            Returns a database connection 
            </summary>
            <returns>Returns an IDbConnection object</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.LoadDataReader(Habanero.Base.ISqlStatement)">
            <summary>
            Loads a data reader
            </summary>
            <param name="selectSql">The sql statement object</param>
            <returns>Returns an IDataReader object</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.LoadDataReader(Habanero.Base.ISqlStatement,System.String)">
            <summary>
            Loads a data reader and specifies an order-by clause
            </summary>
            <param name="selectSql">The sql statement object</param>
            <param name="strOrderByCriteria">A sql order-by clause</param>
            <returns>Returns an IDataReader object</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.LoadDataReader(System.String)">
            <summary>
            Loads a data reader with the given raw sql select statement
            </summary>
            <param name="selectSql">The sql statement as a string</param>
            <returns>Returns an IDataReader object with the results of the query</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.LoadDataReader(System.String,System.Data.IDbTransaction)">
            <summary>
            Loads a data reader with the given raw sql select statement for the specified transaction
            </summary>
            <param name="selectSql">The sql statement as a string</param>
            <param name="transaction">Thransaction that gives the context within which the sql statement should be executed</param>
            <returns>Returns an IDataReader object with the results of the query</returns>
            <exception>DataBaseReadException Thrown when an error
            occurred while setting up the data reader.  Also sends error
            output to the log.</exception>        
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.LoadDataTable(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Loads data from the database into a DataTable object, using the
            sql statement object provided
            </summary>
            <param name="selectSql">The sql statement object</param>
            <param name="strSearchCriteria">The search criteria as a string
            to append</param>
            <param name="strOrderByCriteria">The order by criteria as a string
            to append</param>
            <returns>Returns a DataTable object</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ExecuteRawSql(System.String)">
            <summary>
            Executes a sql command using the sql string provided
            </summary>
            <param name="sql">The sql statement as a string</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ExecuteRawSql(System.String,System.Data.IDbTransaction)">
            <summary>
            Executes a sql command that returns no result set and takes no 
            parameters, using the provided connection
            </summary>
            <param name="sql">The sql statement as a string</param>
            <param name="transaction">A valid transaction object in which the 
            sql must be executed, or null</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatementCollection)">
            <summary>
            Executes a collection of sql statements
            </summary>
            <param name="sql">The collection of sql statements</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatementCollection,System.Data.IDbTransaction)">
            <summary>
            Executes a collection of sql statements
            </summary>
            <param name="sql">The collection of sql statements</param>
            <param name="transaction">A valid transaction object in which the 
            sql must be executed, or null</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatement)">
            <summary>
            Executes a single sql statement object
            </summary>
            <param name="sql">The sql statement object</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.SetTimeoutPeriod(System.Int32)">
            <summary>
            Set the time-out period in seconds
            </summary>
            <param name="timeoutSeconds">The time-out period in seconds</param>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnection.BeginTransaction(System.Data.IDbConnection)">
            <summary>
            Creates a transaction on the given connection.
            </summary>
            <param name="openConnection"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.IDatabaseConnection.ConnectionString">
            <summary>
            Gets and sets the database connection string
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConnection.LeftFieldDelimiter">
            <summary>
            Returns the left field delimiter appropriate to the database
            vendor
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConnection.RightFieldDelimiter">
            <summary>
            Returns the right field delimiter appropriate to the database
            vendor
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConnection.SqlFormatter">
            <summary>
             Creates a SQL formatter for the specified database.
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConnection.IsolationLevel">
            <summary>
            Gets the IsolationLevel to use for this connection
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.ArgumentValidationHelper">
            <summary>
            Provides methods to check the validity of arguments/parameters
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.#ctor">
            <summary>
            Constructor to initialise a new helper (set as private to prevent
            instantiation, seeing as all methods are static)
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.IsNull(System.Object)">
            <summary>
            Indicates whether the given object is null
            </summary>
            <param name="obj">The object to check</param>
            <returns>Returns true if null</returns>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckArgumentNotNull(System.Object,System.String)">
            <summary>
            Throws an exception if the given object is null
            </summary>
            <param name="obj">The object to check</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            object is null</exception>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckArgumentNotNull(System.Object,System.String,System.String)">
            <summary>
            Throws an exception with a given message if the given object is null
            </summary>
            <param name="obj">The object to check</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <param name="message">The error message to display</param>
            /// <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            object is null</exception>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckStringArgumentNotEmpty(System.String,System.String)">
            <summary>
            Checks that the given string is not empty and throws an
            exception if so
            </summary>
            <param name="str">The string to check</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            string is empty</exception>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckStringArgumentNotEmpty(System.String,System.String,System.String)">
            <summary>
            Checks that the given string is not empty and throws an
            exception with a given message if so
            </summary>
            <param name="str">The string to check</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <param name="message">The error message to display</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            string is empty</exception>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckArgumentIsSubType(System.Type,System.String,System.Type)">
            <summary>
            Checks that the argument type is a sub-type of that specified and
            throws an exception if not
            </summary>
            <param name="parameterType">The parameter/argument type</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <param name="expectedType">The type of which the argument should
            be a sub-type</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            argument is not a sub-type of that given</exception>
        </member>
        <member name="M:Habanero.Base.Exceptions.ArgumentValidationHelper.CheckArgumentIsSubType(System.Type,System.String,System.Type,System.String)">
            <summary>
            Checks that the argument type is a sub-type of that specified and
            provides an error message to display if not
            </summary>
            <param name="parameterType">The parameter/argument type</param>
            <param name="parameterName">The parameter name, which will be
            displayed in the error message</param>
            <param name="expectedType">The type of which the argument should
            be a sub-type</param>
            <param name="message">The error message to display</param>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIGrid">
            <summary>
            An interface describing a grid.  An IUIGrid contains a collection of <see cref="T:Habanero.BO.ClassDefinition.IUIGridColumn"/> objects, a <see cref="T:Habanero.Base.IFilterDef"/>
            and a sort column.  Implemented by UIGrid
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGrid.Add(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Adds a grid property definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGrid.Remove(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Removes a grid property definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGrid.Contains(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Checks if a grid property definition is in the Grid definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.Item(System.String)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="propName">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.SortColumn">
            <summary>
            The column on which rows are ordered initially.
            Indicate the direction by adding " asc" or " desc"
            after the column name (" asc" is assumed if left out).  If this
            property is not specified, rows will be listed in the order
            they were added to the database.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.FilterDef">
            <summary>
             The definition of the filter that will be used for this grid.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.UIDef">
            <summary>
             The UI Def that this UIForm is related to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGrid.ClassDef">
            <summary>
            The ClassDef that this IUIGridDef is associated with
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIFormColumn">
            <summary>
            An interface describing a column of fields on a form.  This is implemented by <see cref="!:UIFormColumn"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormColumn.Add(Habanero.Base.IUIFormField)">
            <summary>
            Adds a form field to the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormColumn.Remove(Habanero.Base.IUIFormField)">
            <summary>
            Removes a form field from the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormColumn.Contains(Habanero.Base.IUIFormField)">
            <summary>
            Checks if a form field is in the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIFormColumn.Insert(System.Int32,Habanero.Base.IUIFormField)">
            <summary>
             Inserts a formField. at the specified index.
             If Index Less than or equal to zero then the form field wil be inserted at the first postion
             If the index is greater than the Count of the list then it will be inserted at the last position.
            </summary>
            <param name="index">The position at which the formField should be inserted</param>
            <param name="formField">The FormField to be iserted.</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormColumn.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormColumn.Width">
            <summary>
            Gets and sets the column width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormColumn.UIFormTab">
            <summary>
             Returns the Form tab that this UIFormColumn is on.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.ITrigger">
            <summary>
            The interface for a a Trigger which is a trigger set up to two properties so that when one changes
            the other can be notified.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ITrigger.TriggeredBy">
            <summary>
            Gets the property name of the field, if any, which must have a value change
            in order for this trigger to be fired.  This property is used when the
            trigger has been created on the target - alternatively place the trigger on
            the source and indicate the Target.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ITrigger.Target">
            <summary>
            Gets the property name of the field, if any, which will be affected by the
            designated action when the source field has had a value change.  This property
            is used when the trigger has been created on the source field with the value
            change - alternatively place the trigger on the Target and indicate
            the source using TriggeredBy.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ITrigger.ConditionValue">
            <summary>
            Gets and sets a condition value that the source field must
            hold in order to cause the trigger to fire.  In most cases you can
            simply specify the value as a string literal, but in lookup lists you
            can specify the string value as shown in the drop-down.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ITrigger.Action">
            <summary>
            Gets and sets the name of the action to take when the trigger is
            ready to fire.  Possible options include:
            <ul>
            <li>assignLiteral - assigns the literal value as specified between the quotes
            in the value</li>
            <li>assignProperty - assigns the current value of the property given in the value</li>
            <li>filter - filters a lookup list with an exact match on the
            trigger property value (assumes that the target has a field with the same name
            as the trigger source)</li>
            <li>execute - calls a given method as provided in the value</li>
            <li>enable - enables/disables the control of the targer property, provide
            "true" or "false" as the value</li>
            </ul>
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ITrigger.Value">
            <summary>
            Gets and sets the relevant value to use for the action given.  See Action
            for further clarification of the options available.
            </summary>
        </member>
        <member name="T:Habanero.Base.DateTimeNowConverter">
            <summary>
             The Type Converter class for conversion of a DateTimeNow value to a DateTime.
            </summary>
        </member>
        <member name="M:Habanero.Base.DateTimeNowConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. 
                            </param><param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to. 
                            </param>
        </member>
        <member name="M:Habanero.Base.DateTimeNowConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. 
                            </param><param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. 
                            </param><param name="value">The <see cref="T:System.Object"/> to convert. 
                            </param><param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. 
                            </param><exception cref="T:System.ArgumentNullException">The <paramref name="destinationType"/> parameter is null. 
                            </exception><exception cref="T:System.NotSupportedException">The conversion cannot be performed. 
                            </exception>
        </member>
        <member name="T:Habanero.Util.DateTimeUtilities">
            <summary>
            General utilities used for datetime manipulation e.g. LastDayOfMonth
            </summary>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.LastDayOfTheMonth">
            <summary>
            returns the last day of the current month (i.e. LastDayOfTheMonth(Today)
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.LastDayOfTheMonth(System.DateTime)">
            <summary>
            returns the last day of the month defined by dte
            </summary>
            <param name="dte"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.FirstDayOfMonth">
            <summary>
            returns the first day of the current month
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.FirstDayOfMonth(System.DateTime)">
            <summary>
            returns the first day of the month specified by dte
            </summary>
            <param name="dte"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.FirstDayOFinancialYear(System.Int32)">
            <summary>
            Returns the first day of the current financial year.
            If the financial year starts in march then monthFinancialYearStarts = 3.
            If the current date is before 01 March e.g. 12 Feb 2007 then the the current financial year starts on the 01 March 2006.
            Then the current date is after 01 March e.g. 21 August 2007 then the current financial year starts on the 01 March 2007. 
            </summary>
            <param name="monthFinancialYearStarts">the month that the financial year starts usually march in south africa</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.FirstDayOFinancialYear(System.Int32,System.DateTime)">
            <summary>
            Returns the first day of the current financial year.
            If the financial year starts in march then monthFinancialYearStarts = 3.
            If the current date is before 01 March e.g. 12 Feb 2007 then the the current financial year starts on the 01 March 2006.
            Then the current date is after 01 March e.g. 21 August 2007 then the current financial year starts on the 01 March 2007. 
            </summary>
            <param name="currentDate">The date for which you wish to calculate the first day of the financial year</param>
            <param name="monthFinancialYearStarts">the month that the financial year starts usually march in south africa</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.LastDayOfFinancialYear(System.Int32,System.DateTime)">
            <summary>
            Returns the last day of the current financial year (the current financial year is determined by the current date).
            If the financial year starts in march then monthFinancialYearStarts = 3.
            If the current date is before 01 March e.g. 12 Feb 2007 then the the current financial year starts on the 01 March 2006
             and ends on the 28 Feb 2007.
            If the current date is after 01 March e.g. 21 August 2007 then the current financial year starts on the 01 March 2007
            and ends on the 29 Feb 2008. 
            </summary>
            <param name="currentDate">The date for which you wish to calculate the last day of the financial year</param>
            <param name="monthFinancialYearStarts">the month that the financial year starts usually march in south africa</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.CloseToDateTimeNow(System.DateTime,System.Int32)">
            <summary>
            Indicates whether the given DateTime value is close to DateTime.Now,
            within the given tolerance range
            </summary>
            <param name="valueToCheck">The DateTime value to check</param>
            <param name="toleranceInSeconds">The maximum number of distance in seconds that
            the value can be from Now and still be accepted</param>
            <returns>Returns true if within the tolerance range</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.ParseToDate(System.Object)">
            <summary>
             Parses the <paramref name="valueToParse"/> to a valid date time
            </summary>
            <param name="valueToParse"></param>
            <returns>The parsed valid date time</returns>
             <exception cref="T:Habanero.Base.Exceptions.HabaneroIncorrectTypeException">Exception raised if value cannot be parsed</exception>
             <seealso cref="M:Habanero.Util.DateTimeUtilities.TryParseValue(System.Object,System.Object@)"/>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.RaiseIncorrectTypeException(System.Object)">
            <summary>
            Raises an Erorr if the Incorrect type of property is being set to this BOProp.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.TryParseDate(System.Object,System.Nullable{System.DateTime}@)">
            <summary>
             Tries to parse a value as an object to a valid DateTime.
             The valid value may not be a date will always be a date i.e. "Now" will resolve to now.
             If you need lazy resolution then use <see cref="M:Habanero.Util.DateTimeUtilities.TryParseValue(System.Object,System.Object@)"/>.
            </summary>
            <param name="valueToParse"></param>
            <param name="returnValue">valid date if try Parse true else null</param>
            <returns>If the value cannot be parsed to a valid date time then returns false else true</returns>
             <seealso cref="M:Habanero.Util.DateTimeUtilities.TryParseValue(System.Object,System.Object@)"/>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.TryParseValue(System.Object,System.Object@)">
            <summary>
             Tries to parse a value as an object to a valid DateTimeValue or a resolvable DateTimeValue.
             The valid value may not be a date but could instead return a <see cref="T:Habanero.Base.DateTimeToday"/> or <see cref="T:Habanero.Base.DateTimeNow"/> etc
             These objects are convertable to DateTime via the <see cref="M:Habanero.Base.DateTimeToday.ResolveToValue"/>
            </summary>
            <param name="valueToParse"></param>
            <param name="returnValue"></param>
            <returns>If the value cannot be parsed to a valid date time then returns false else true</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.IsWeekDay(System.DateTime)">
            <summary>
            Determines whether is week day.
            </summary>
            <param name="date">The date.</param>
            <returns>
            	<c>true</c> if [is week day] ; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.OnOrNextDayOfWeek(System.DateTime,System.DayOfWeek)">
            <summary>
            Return the <paramref name="date"/> if it is on the <paramref name="day"/> of the week.
            Else returns the following day. This i used to iteratively walk through days untill you find the '
            day the next day that is the day of the week.
            </summary>
            <param name="date"></param>
            <param name="day"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.OnOrNextBusinessDay(System.DateTime)">
            <summary>
            Returns unchanged if is business day
            else subsequent Monday.
            Does not take into account public holidays.
            </summary>
            <param name="date">The date.</param>
            <returns><see cref="T:System.DateTime"/></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.OnOrPreviousDayOfWeek(System.DateTime,System.DayOfWeek)">
            <summary>
            Return the <paramref name="date"/> if it is on the <paramref name="day"/> of the week.
            Else returns the previous day. This i used to iteratively walk through days untill you find
            the previous day that is the day of the week.
            </summary>
            <param name="date"></param>
            <param name="day"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.OnOrPreviousBusinessDay(System.DateTime)">
            <summary>
            Returns unchanged if is business day
            else previous  Friday
            Does not take into account public holidays.
            </summary>
            <param name="date">The date.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.NextBusinessDay(System.DateTime)">
            <summary>
            Next Business Day (not Sat or Sun)
            Does not take into account public holidays.
            </summary>
            <param name="date">The date.</param>
            <returns><see cref="T:System.DateTime"/></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.PreviousBusinessDay(System.DateTime)">
            <summary>
            Previous Trade Day (not Sat or Sun)
            Does not take into account public holidays.
            </summary>
            <param name="date">The date.</param>
            <returns><see cref="T:System.DateTime"/></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.HourStart(System.DateTime)">
            <summary>
            Converts the given date to the start of the hour
            </summary>
            <param name="date">The date to convert</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.HourEnd(System.DateTime)">
            <summary>
            Converts the given date to the start of the hour
            </summary>
            <param name="date">The date to convert</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.DayStart(System.DateTime)">
            <summary>
            Converts the given date to the previous midnight,
            factoring in the midnight offset
            </summary>
            <param name="date">The date to convert</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.DayStart(System.DateTime,System.TimeSpan)">
            <summary>
            Converts the given date to the previous midnight,
            factoring in the midnight offset
            </summary>
            <param name="date">The date to convert</param>
            <param name="dayStartOffSet">You can offset the Date Start (typically used when you wan to report on date starting at 8:00 am)</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.DayEnd(System.DateTime)">
            <summary>
            Converts the given date to the previous midnight,
            factoring in the midnight offset
            </summary>
            <param name="date">The date to convert</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.DayEnd(System.DateTime,System.TimeSpan)">
            <summary>
            Converts the given date to the previous midnight,
            factoring in the midnight offset
            </summary>
            <param name="date">The date to convert</param>
            <param name="dayStartOffSet">You can offset the Date Start (typically used when you wan to report on date starting at 8:00 am)</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.WeekStart(System.DateTime,System.TimeSpan)">
            <summary>
            Converts the given date to the previous Monday midnight,
            factoring in the midnight offset and week start
            </summary>
            <param name="currentDateTime">The date to convert</param>
            <param name="weekStartOffSet">The off set period</param>
            <returns>Returns the converted date</returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.MonthStart(System.DateTime)">
            <summary>
             The FirstDay of the currentDateTime
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.MonthStart(System.DateTime,System.TimeSpan)">
            <summary>
             The FirstDay of the currentDateTime taking into a
            </summary>
            <param name="currentDateTime"></param>
            <param name="monthStartOffSet"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.WeekStart(System.DateTime)">
            <summary>
             The WeekStart for the currentDateTime where the WeekStart is assumed to be Sunday
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.WeekEnd(System.DateTime)">
            <summary>
            The WeekEnd For the currentDateTime where the WeekEnd is assumed to be Saturday
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.WeekEnd(System.DateTime,System.TimeSpan)">
            <summary>
            The WeekEnd For the currentDateTime
            </summary>
            <param name="currentDateTime"></param>
            <param name="startOfWeekOffSet">The OffSet</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.MonthEnd(System.DateTime)">
            <summary>
            The MonthEnd For the currentDateTime where the MonthEnd is assumed to be Saturday
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.MonthEnd(System.DateTime,System.TimeSpan)">
            <summary>
            The MonthEnd For the currentDateTime
            </summary>
            <param name="currentDateTime"></param>
            <param name="startOfMonthOffSet">The OffSet</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearStart(System.DateTime)">
            <summary>
             The Very first second of this year.
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearStart(System.DateTime,System.Int32)">
            <summary>
             The very first second of this year plus the offset. This is typically used 
             for Financial Year type calculations e.g. when you are 
             looking for a year starting on 01 March use a noOfMonthsOffSet = 2.
            </summary>
            <param name="currentDateTime">the currentDate from which the YearStart should be calculated</param>
            <param name="noOfMonthsOffSet">The noOfMonthsOffSet used to </param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearStart(System.DateTime,System.Int32,System.TimeSpan)">
            <summary>
             The very first second of this year plus the month offset plus the Time offset. This is typically used 
             for Financial Year type calculations e.g. when you are 
             looking for a year starting on 01 March use a noOfMonthsOffSet = 2.
            </summary>
            <param name="currentDateTime">the currentDate from which the YearStart should be calculated</param>
            <param name="noOfMonthsOffSet">The noOfMonthsOffSet used to </param>
            <param name="monthStartOffSet"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearEnd(System.DateTime)">
            <summary>
            The YearEnd For the currentDateTime 
            </summary>
            <param name="currentDateTime"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearEnd(System.DateTime,System.Int32)">
            <summary>
            The YearEnd For the currentDateTime
            </summary>
            <param name="currentDateTime"></param>
            <param name="noOfMonthsOffSet">The OffSet</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.DateTimeUtilities.YearEnd(System.DateTime,System.Int32,System.TimeSpan)">
            <summary>
            The YearEnd For the currentDateTime
            </summary>
            <param name="currentDateTime"></param>
            <param name="noOfMonthsOffSet">The number of moths that are OffSet i.e. offset = 3 will result in year start 1 Apr and Year End 31 Mar</param>
            <param name="monthStartOffSet"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.Base.IFilterClause">
            <summary>
            An interface to model a filter clause that filters which data to
            display, according to some criteria
            </summary>
        </member>
        <member name="M:Habanero.Base.IFilterClause.GetFilterClauseString">
            <summary>
            Returns the filter clause as a string. The filter clause is a clause used for filtering
            a ADO.Net <see cref="T:System.Data.DataView"/>
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.IFilterClause.GetFilterClauseString(System.String,System.String)">
             <summary>
             Returns the filter clause as a string. The filter clause will be delimited with a string like delimiter or a dateTime delimiter as
             appropriate this is to deal with the fact that the ADO.Net <see cref="T:System.Data.DataView"/> uses * and # for the like and date delimiter respectively
             but most databases use % and '. NNB when loading a collection these will be interpretted appropriately for the database being loaded.
             </summary>
             <param name="stringLikeDelimiter">The delimiter to use in the case of a like clause e.g. * or %</param>
             <param name="dateTimeDelimiter">The delimiter to use in the case of a date time filter clause e.g. # for dataview</param>
            <returns>Returns a string</returns>
        </member>
        <member name="T:Habanero.Base.PropAlignment">
            <summary>
            An enumeration to specify a horizontal alignment in a grid
            </summary>
        </member>
        <member name="F:Habanero.Base.PropAlignment.left">
            <summary>
             Aligns to the left of grid.
            </summary>
        </member>
        <member name="F:Habanero.Base.PropAlignment.right">
            <summary>
            Aligns to the right of the grid.
            </summary>
        </member>
        <member name="F:Habanero.Base.PropAlignment.centre">
            <summary>
            Aligns to the center of the grid.
            </summary>
        </member>
        <member name="T:Habanero.Base.IPrimaryKeyDef">
            <summary>
            Manages the definition of the primary key in a for a particular Business Object (e.g. Customer).
            The Primary Key Definition defins the properties of the object that are used to map the business object
             to the database. The Primary key def is a mapping that is used to implement the 
             Identity Field (216) Pattern (Fowler - 'Patterns of Enterprise Application Architecture')
            
            In most cases the PrimaryKeyDefinition will only have one property definition and this property definition 
             will be for an immutable property. In the ideal case this property definition will
             represent a property that is globally unique. In these cases the primaryKeyDef will have the flag mIsGUIDObjectID set to true. 
             However we have in many cases had to extend or replace existing systems
             that use mutable composite keys to identify objects in the database. The primary key definition allows you to define
             all of these scenarious.
            The Application developer should not usually deal with this class since it is usually created based on the class definition modelled
              and stored in the ClassDef.Xml.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKeyDef.IsGuidObjectID">
            <summary>
            Returns true if the primary key is a propery the object's ID, that is,
            the primary key is a single discrete property that is an immutable Guid and serves as the ID.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPrimaryKeyDef.IsCompositeKey">
            <summary>
             Returns true if the primary key is a composite Key (i.e. if it consists of more than one property)
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOProp">
            <summary>
             Provides an interface for storing a single property of a <see cref="T:Habanero.Base.IBusinessObject"/>.
             The property of a business object may represent a property such as FirstName, Surname.
             Typically a <see cref="T:Habanero.Base.IBusinessObject"/> will have a collection of Properties.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOProp.RestorePropValue">
            <summary>
            Restores the property's original value as defined in PersistedValue.
            This is typically called when the edits to a <see cref="T:Habanero.Base.IBusinessObject"/> are cancelled.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOProp.BackupPropValue">
            <summary>
            Copies the current property value to PersistedValue.
            This is usually called when the object is persisted
            to the database or loaded from the database.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOProp.InitialiseProp(System.Object)">
            <summary>
            Initialises the property with the specified value,
            </summary>
            <param name="propValue">The value to assign</param>
        </member>
        <member name="M:Habanero.Base.IBOProp.Validate">
            <summary>
            Validates whether the property values set for the BOProp are valid
            as compared to the BOProp rules.
            NNB For performance reasons it was decided to not run the validation code 
            every time Isvalid is called on the boProp instead the boProp has a <see cref="M:Habanero.Base.IBOProp.Validate"/>
            which runs the validation code and sets the valid message and status on the BOProp.
            This is used by the <see cref="T:Habanero.Base.IBOPropCol"/> when  IsValid is called on the <see cref="T:Habanero.Base.IBOPropCol"/>.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOProp.IsEditable(System.String@)">
            <summary>
             Returns whether the BOProperty is Editable or not. The BOProp may not be editable
              based on a number of factors. 
              1) If its ReadWrite Rules are set to ReadOnly etc.
              2) The user may not have permissions to edit this property Value.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IBOProp.IsReadable(System.String@)">
            <summary>
             Returns whether the BOProperty is Readable or not. The BOProp may not be Readable
              if the user may not have permissions to read the property Value.
            </summary>
            <param name="message">the reason why the user cannot read the property.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IBOProp.CurrentValueEquals(System.Object)">
            <summary>
            is the <paramref name="compareToValue"/> equal to the 
            current Value of the BOProp. 
            </summary>
            <param name="compareToValue"></param>
            <returns></returns>
        </member>
        <member name="E:Habanero.Base.IBOProp.Updated">
            <summary>
            Indicates that the value held by the property has been
            changed
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PropDef">
            <summary>
             The property definition of the property that this BOProp represents.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.Value">
            <summary>
            Gets and sets the value for this property.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.ValueBeforeLastEdit">
            <summary>
            Gets the value held before the value was last edited. If the property has been edited multiple times
              since being loaded or persisted to the database then this will not be equal to <see cref="P:Habanero.Base.IBOProp.PersistedPropertyValue"/>.
            If the object has just been created, this value will be equal to the current <see cref="P:Habanero.Base.IBOProp.Value"/> of the property
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PersistedPropertyValue">
            <summary>
            Returns the persisted property value in its object form
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.IsValid">
            <summary>
            Indicates whether the property value is valid. The property will be valid if the current value, See <see cref="P:Habanero.Base.IBOProp.Value"/>.
            conforms to all the Property Rules for the property See <see cref="T:Habanero.Base.IPropRule"/>.
            NNB For performance reasons it was decided to not run the validation code 
            every time Isvalid is called on the boProp instead the boProp has a <see cref="M:Habanero.Base.IBOProp.Validate"/>
            which runs the validation code and sets the valid message and status on the BOProp.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.InvalidReason">
            <summary>
            Returns a string which indicates why the property value is
            be invalid See <see cref="P:Habanero.Base.IBOProp.IsValid"/>. If the Property is Valid then returns a null string.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.IsDirty">
            <summary>
            Indicates whether the property's value has been changed since
            it was last backed up or committed to the database
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PropertyType">
            <summary>
            Returns the property type. The property can be of any type but is typically a string, decimal etc.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.DisplayName">
            <summary>
            The field name as given to the user in the user interface
            (eg. "Computer Part" rather than "ComputerPartID").  This
            property is used to improve error messaging, so that the
            user recognises the property name as displayed to them,
            rather than as it is represented in the code.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PropertyValueString">
            <summary>
            Returns the property value as a string
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.DatabaseFieldName">
            <summary>
            Returns the database field name. This is the field name that the property is mapped to in the datasource.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PropertyName">
            <summary>
            Returns the property name. This is the name of the property used in the business object layer e.g. Surname.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.DirtyXml">
            <summary>
            Returns an XML string to describe changes between the property
            value and the persisted value.  It consists of an element with the 
            property name, containing "PreviousValue" and "NewValue" elements.
            This can be used for a number of purposes but is typically used for
            writing transaction logs or for Syunchronising distributed systems.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.IsObjectNew">
            <summary>
            Indicates whether the <see cref="T:Habanero.Base.IBusinessObject"/> that this property is 
            associated with is new (i.e. has never been persisted to the database.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PersistedPropertyValueString">
            <summary>
            Returns the persisted property value as a string (the value 
            assigned at the last backup or database committal)
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOProp.PropertyValueToDisplay">
            <summary>
            Returns the named property value that should be displayed
              on a user interface e.g. a textbox or on a report.
            This is used primarily for Lookup lists where
               the value stored for the object may be a guid but the value
               to display may be a string.
            </summary>
            <returns>Returns the property value</returns>
        </member>
        <member name="P:Habanero.Base.IBOProp.BusinessObject">
            <summary>
             This is the <see cref="T:Habanero.Base.IBusinessObject"/> to which this <see cref="T:Habanero.Base.IBOProp"/> belongs.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidObjectIdException">
            <summary>
            Provides an exception to throw when an invalid object ID is
            encountered
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidObjectIdException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidObjectIdException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidObjectIdException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidObjectIdException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Criteria">
            <summary>
            A criteria expression that can be used to build up a criteria tree. The IsMatch method can then be
            used to check whether an <see cref="T:Habanero.Base.IBusinessObject"/> matches the criteria.
            The Criteria object collaborates with the <see cref="T:Habanero.Base.ISelectQuery"/> to provide the application developer 
            as well as the framework developer with a mechanism to query the database. For more details See <see cref="T:Habanero.Base.ISelectQuery"/>
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.DATE_FORMAT">
            <summary>
            The default date format to be used.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria._logicalOps">
            <summary>
            An array of logical operations (e.g. AND, OR, NOT') that can be used when building <see cref="T:Habanero.Base.Criteria"/>
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria._comparisonOps">
            <summary>
            An Arracy of Comparison Ops (e.g. '=', 'Like' that can be used when building <see cref="T:Habanero.Base.Criteria"/>
            This is used to convert the <see cref="T:Habanero.Base.Criteria.ComparisonOp"/> value to a <see cref="M:Habanero.Base.Criteria.ComparisonOperatorString"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.Criteria.#ctor">
            <summary>
            This constructor is used by the Sub Classes of Criteria E.g. CriteriaDB.
            </summary>
        </member>
        <member name="M:Habanero.Base.Criteria.#ctor(System.String,Habanero.Base.Criteria.ComparisonOp,System.Object)">
            <summary>
            Creates a leaf criteria (meaning it has no children in the tree structure).
            </summary>
            <param name="propName">The property whose value to check</param>
            <param name="comparisonOp">The operator to use to compare the property value to the given value</param>
            <param name="value">The value to compare to</param>
        </member>
        <member name="M:Habanero.Base.Criteria.#ctor(Habanero.Base.Criteria,Habanero.Base.Criteria.LogicalOp,Habanero.Base.Criteria)">
            <summary>
            Creates a composite criteria by logically joining two other criteria.
            </summary>
            <param name="leftCriteria">The left criteria (can be a whole tree structure)</param>
            <param name="logicalOp">The logical operator to use to join the left criteria tree with the right</param>
            <param name="rightCriteria">The right criteria (can be a whole tree structure)</param>
        </member>
        <member name="M:Habanero.Base.Criteria.#ctor(Habanero.Base.QueryField,Habanero.Base.Criteria.ComparisonOp,System.Object)">
            <summary>
            Creates a leaf criteria (meaning it has no children in the tree structure).
            </summary>
            <param name="field">The property whose value to check, as a <see cref="T:Habanero.Base.QueryField"/></param>
            <param name="comparisonOp">The operator to use to compare the property value to the given value</param>
            <param name="value">The value to compare to</param>
        </member>
        <member name="M:Habanero.Base.Criteria.#ctor(Habanero.Base.Criteria.LogicalOp,Habanero.Base.Criteria)">
            <summary>
            
            </summary>
            <param name="logicalOp"></param>
            <param name="criteria"></param>
        </member>
        <member name="M:Habanero.Base.Criteria.IsMatch``1(``0,System.Boolean)">
            <summary>
             Returns true if the business object matches 
            </summary>
            <param name="businessObject"></param>
            <param name="usePersistedValue"></param>
            <typeparam name="T"></typeparam>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:Habanero.Base.Criteria.IsMatch``1(``0)">
            <summary>
            Evaluates the businessObject passed in to see if it matches the criteria that have been set up
            </summary>
            <typeparam name="T">The type of BusinessObject</typeparam>
            <param name="businessObject">The businessobject to check for a match against the criteria</param>
            <returns>True if the businessobject matches the criteria, false if it does not</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.IsMatch(Habanero.Base.BusinessObjectDTO)">
            <summary>
            Evaluates the <see cref="T:Habanero.Base.BusinessObjectDTO"/> passed in to see if it matches the criteria that have been set up
            </summary>
            <param name="dto">The <see cref="T:Habanero.Base.BusinessObjectDTO"/> to check for a match against the criteria</param>
            <returns>True if the <see cref="T:Habanero.Base.BusinessObjectDTO"/> matches the criteria, false if it does not</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.ToString">
            <summary>
            Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.Criteria.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.Criteria.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.Criteria.IsComposite">
            <summary>
            Returns whether this is a leaf node (not composite, ie false) or a composite node (true).  This is determined
            by whether it has child nodes or not.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Criteria.FromPrimaryKey(Habanero.Base.IPrimaryKey)">
            <summary>
            Creates a Criteria from an IPrimaryKey object. For each property in the primary key an Equals criteria is created, and these
            are all chained together with AND clauses to build up a composite Criteria representing the IPrimaryKey
            </summary>
            <param name="key">The IPrimaryKey to create Criteria for</param>
            <returns>The Criteria this IPrimaryKey instance is defined by</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.FromRelationship(Habanero.Base.IRelationship)">
            <summary>
            Creates a Criteria from an IRelationship object. For each relationship property in the relationship's key a simple 
            Equals Criteria object is created, and these are chained together with AND clauses to build up a composite criteria
            representing the relationship.
            </summary>
            <param name="relationship">The IRelationship to create Criteria for</param>
            <returns>The Criteria this IRelationship instance is defined by.</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.CannotBeParametrised">
            <summary>
            Indicates whether the sql operator is some variant of "IS" or "IN",
            in which case a parameterised value is not used
            </summary>
            <returns>True if cannot use parameterised Value, false if required</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.CanBeParametrised">
            <summary>
            Indicates whether the sql operator is some variant of "IS" or "IN",
            in which case a parameterised value is not used
            </summary>
            <returns>True if cannot use parameterised Value, false if required</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.ComparisonOperatorString">
            <summary>
            Returns the string comparison Operator for the enumerated <see cref="T:Habanero.Base.Criteria.ComparisonOp"/> value (e.g. ComparisonOp.Equals will be converted to '='/&gt;
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Criteria.MergeCriteria(Habanero.Base.Criteria,Habanero.Base.Criteria)">
            <summary>
            Merges two given criteria into one, using an AND operator, and returns the merged criteria
            </summary>
            <returns>Returns the merged criteria</returns>
        </member>
        <member name="M:Habanero.Base.Criteria.GuidTryParse(System.String,System.Guid@)">
            <summary>
            Converts the string representation of a Guid to its Guid
            equivalent. A return value indicates whether the operation
            succeeded.
            </summary>
            <param name="s">A string containing a Guid to convert.</param>
            <param name="result">
            When this method returns, contains the Guid value equivalent to
            the Guid contained in <paramref name="s"/>, if the conversion
            succeeded, or <see cref="F:System.Guid.Empty"/> if the conversion failed.
            The conversion fails if the <paramref name="s"/> parameter is a
            <see langword="null"/> reference (<see langword="Nothing"/> in
            Visual Basic), or is not of the correct format.
            </param>
            <value>
            <see langword="true"/> if <paramref name="s"/> was converted
            successfully; otherwise, <see langword="false"/>.
            </value>
            <exception cref="T:System.ArgumentNullException">
                   Thrown if <pararef name="s"/> is <see langword="null"/>.
            </exception>
        </member>
        <member name="P:Habanero.Base.Criteria.Field">
            <summary>
             Gets the query Field being used by this criteria object (Where the criteria object is a leaf).
             the query field is a query field object representing the objects property as defined in the 
             Constructor [Criteria(string propName, ComparisonOp op, object value)].
            </summary>
        </member>
        <member name="P:Habanero.Base.Criteria.LeftCriteria">
            <summary>
             Gets the left critieria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.Criteria.RightCriteria">
            <summary>
             Gets the right criteria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.Criteria.LogicalOperator">
            <summary>
             Gets the logical operator being used for this criteria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.Criteria.FieldValue">
            <summary>
             Gets or sets the field value being compared to for this criteria object (If this is a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.Criteria.ComparisonOperator">
            <summary>
             Gets the comparison operator being used by this Criteria object (If this is a leaf criteria)
            </summary>
        </member>
        <member name="T:Habanero.Base.Criteria.LogicalOp">
            <summary>
             A logical operator used to conjoin two criteria trees.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.LogicalOp.And">
            <summary>
             The logical And () operator
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.LogicalOp.Or">
            <summary>
            The logical Or  operator
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.LogicalOp.Not">
            <summary>
             The logical unary Not !()
            </summary>
        </member>
        <member name="T:Habanero.Base.Criteria.ComparisonOp">
            <summary>
            An operator used on a leaf criteria - ie a comparison operator to check a property against a value
            e.g. &lt;, &gt;=, Like.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.Equals">
            <summary>
             The equals (=) operator
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.GreaterThan">
            <summary>
             The Greater than (&gt;) operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.LessThan">
            <summary>
             The less than (&lt;) operator
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.NotEquals">
            <summary>
             The Not Equals (&lt;&gt;) Operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.LessThanEqual">
            <summary>
             The less than or equal (&lt;=) Operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.GreaterThanEqual">
            <summary>
             The greater than or equal (&gt;=) Operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.Like">
            <summary>
             The like (Like) Operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.NotLike">
            <summary>
             The Not Like Operator.
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.Is">
            <summary>
             The IS operator used for IS NULL
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.IsNot">
            <summary>
             The IS Not operator used for IS NOT NULL
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.In">
            <summary>
            The In operator 
            </summary>
        </member>
        <member name="F:Habanero.Base.Criteria.ComparisonOp.NotIn">
            <summary>
            The Not In operator
            </summary>
        </member>
        <member name="T:Habanero.Base.Criteria.CriteriaValues">
            <summary>
            The list of Criterial Values.
            </summary>
        </member>
        <member name="M:Habanero.Base.Criteria.CriteriaValues.#ctor(System.Collections.IEnumerable)">
            <summary>
            Construc the Criteria values based on a set of values.
            </summary>
            <param name="values"></param>
        </member>
        <member name="M:Habanero.Base.Criteria.CriteriaValues.CompareTo(System.Object)">
            <summary>
            Compare obj to any Value in the CriteriaValues list of values.
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.Criteria.CriteriaValues.Count">
            <summary>
            The number of criteria items
            </summary>
        </member>
        <member name="T:Habanero.Base.DelegatedExceptionNotifier">
            <summary>
             An Exception Notifier that executes the provided delegate when notified of an exception.
            </summary>
        </member>
        <member name="M:Habanero.Base.DelegatedExceptionNotifier.#ctor(Habanero.Base.DelegatedExceptionNotifier.NotifyDelegate)">
            <summary>
             Create a <see cref="T:Habanero.Base.DelegatedExceptionNotifier"/> with the specified exception notification delegate.
            </summary>
            <param name="notifyDelegate">The <see cref="T:Habanero.Base.DelegatedExceptionNotifier.NotifyDelegate"/> to execute when an exception is recieved by the <see cref="T:Habanero.Base.DelegatedExceptionNotifier"/>.</param>
        </member>
        <member name="M:Habanero.Base.DelegatedExceptionNotifier.Notify(System.Exception,System.String,System.String)">
            <summary>
            Notifies the user of an exception that has occurred
            </summary>
            <param name="ex">The exception</param>
            <param name="furtherMessage">Any further error messages</param>
            <param name="title">The title</param>
        </member>
        <member name="P:Habanero.Base.DelegatedExceptionNotifier.ExceptionMessage">
            <summary>
             The last exception logged by the exception notifier
            </summary>
        </member>
        <member name="T:Habanero.Base.DelegatedExceptionNotifier.NotifyDelegate">
            <summary>
             The delegate type for the Notification of an exception
            </summary>
             <param name="ex">The exception</param>
             <param name="furtherMessage">Any further error messages</param>
             <param name="title">The title</param>
        </member>
        <member name="T:Habanero.Base.DateTimeTodayConverter">
            <summary>
             The Type Converter class for conversion of a DateTimeNow value to a DateTime.
            </summary>
        </member>
        <member name="M:Habanero.Base.DateTimeTodayConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. 
                            </param><param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to. 
                            </param>
        </member>
        <member name="M:Habanero.Base.DateTimeTodayConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. 
            </param><param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. 
            </param><param name="value">The <see cref="T:System.Object"/> to convert. 
            </param><param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. 
            </param><exception cref="T:System.ArgumentNullException">The <paramref name="destinationType"/> parameter is null. 
            </exception><exception cref="T:System.NotSupportedException">The conversion cannot be performed. 
            </exception>
        </member>
        <member name="T:Habanero.Util.XmlDocumentValidator">
            <summary>
            Validates an xml document
            </summary>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.ValidationHandler(System.Object,System.Xml.Schema.ValidationEventArgs)">
            <summary>
            Handles a validation failure
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="args">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.ValidateDocument(System.String,System.String,System.String)">
            <summary>
            Validates the given xml document, throwing an exception if there
            is a validation failure
            </summary>
            <param name="xmlDocument">The xml document in a continuous 
            string</param>
            <param name="rootElementName">The root element name</param>
            <param name="dtd">The dtd path</param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if there
            is a validation failure</exception>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.ValidateCurrentDocument">
            <summary>
            Validates the xml document
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if there
            is a validation failure</exception>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.ValidateDocument(System.Xml.XmlDocument)">
            <summary>
            Validats the given xml document
            </summary>
            <param name="xmlDocument">The xml document object</param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if there
            is a validation failure</exception>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.ValidateElement(System.Xml.XmlElement)">
            <summary>
            Validates an xml element
            </summary>
            <param name="xmlElement">The xml element object</param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if there
            is a validation failure</exception>
        </member>
        <member name="M:Habanero.Util.XmlDocumentValidator.GetDTD(System.String)">
            <summary>
            Returns the dtd for the given root element name
            </summary>
            <param name="rootElementName">The root element name</param>
            <returns>Returns a string</returns>
            <exception cref="T:System.IO.FileNotFoundException">Thrown if the dtd
            was not found</exception>
        </member>
        <member name="T:Habanero.Util.EmailSender">
            <summary>
            Provides an email sender
            </summary>
        </member>
        <member name="M:Habanero.Util.EmailSender.#ctor(System.Collections.Generic.IList{System.String},System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new sender
            </summary>
            <param name="emailAddresses">The email addresses to send to</param>
            <param name="fromAddress">The "from" address</param>
            <param name="subject">The email subject</param>
            <param name="content">The email content</param>
            <param name="attachmentPath">The attachment path</param>
        </member>
        <member name="M:Habanero.Util.EmailSender.#ctor(System.Collections.Generic.IList{System.String},System.String,System.String,System.String,System.Collections.Generic.IList{System.String})">
            <summary>
            Constructor to initialise a new sender
            </summary>
            <param name="emailAddresses">The email addresses to send to</param>
            <param name="fromAddress">The "from" address</param>
            <param name="subject">The email subject</param>
            <param name="content">The email content</param>
            <param name="attachmentPaths">The attachment paths</param>
        </member>
        <member name="M:Habanero.Util.EmailSender.#ctor(System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},System.String,System.String,System.String,System.Collections.Generic.IList{System.String})">
            <summary>
            Constructor to initialise a new sender
            </summary>
            <param name="toAddresses">The email addresses to send to</param>
            <param name="ccAddresses">The email addresses to carbon copy</param>
            <param name="bccAddresses">The email addresses to blind carbon copy</param>
            <param name="fromAddress">The "from" address</param>
            <param name="subject">The email subject</param>
            <param name="content">The email content</param>
            <param name="attachmentPaths">The attachment paths</param>
        </member>
        <member name="M:Habanero.Util.EmailSender.Send">
            <summary>
            Sends the email message using the "SmtpServer" setting in the
            configuration
            </summary>
        </member>
        <member name="M:Habanero.Util.EmailSender.SendAuthenticated(System.String,System.String)">
            <summary>
            Sends the email message using the "SmtpServer" setting in the
            configuration and authenticates using the provided username and password
            </summary>
            <param name="username">The username used for authentification</param>
            <param name="password">The password used for authentification</param>
        </member>
        <member name="M:Habanero.Util.EmailSender.SendAuthenticated(System.String,System.String,System.String)">
            <summary>
            Sends the email message using the "SmtpServer" setting in the
            configuration and authenticates using the provided username and password
            </summary>
            <param name="username">The username used for authentification</param>
            <param name="password">The password used for authentification</param>
            <param name="domain">The domain used for authentification</param>
        </member>
        <member name="P:Habanero.Util.EmailSender.ToAddresses">
            <summary>
             Gets the List of Email Addresses used for SMTP Transactions.
            </summary>
        </member>
        <member name="P:Habanero.Util.EmailSender.Subject">
            <summary>
             Gets the List of Subject associated with the Email.
            </summary>
        </member>
        <member name="P:Habanero.Util.EmailSender.Attachment">
            <summary>
             Gets the File Attachment Path used for SMTP Transactions.
            </summary>
        </member>
        <member name="P:Habanero.Util.EmailSender.SmtpServerHost">
            <summary>
             Gets or sets the name or IP address of the host used for SMTP transactions.
            </summary>
        </member>
        <member name="P:Habanero.Util.EmailSender.SmtpServerPort">
            <summary>
             Gets or sets the port used for SMTP transactions.
            </summary>
        </member>
        <member name="P:Habanero.Util.EmailSender.EnableSSL">
            <summary>
             Gets or sets whether the SMTP server uses SSL or not.
            </summary>
        </member>
        <member name="T:Habanero.Util.ConfigFileSettings">
            <summary>
            Stores settings from the application's configuration file
            </summary>
        </member>
        <member name="T:Habanero.Base.ISettings">
            <summary>
            An interface to model a class that stores settings.
            Very often settings change over time (such as perhaps the VAT rate or the interest rate), or you
            would like a setting to change over a weekend (such as New Years).  The Get methods with a date
            parameter allow this.  The implementation provided, DatabaseSettings will use the date if its provided to
            retrieve the setting as it was on a particular date.  Calling a Set method with a date will create a new
            entry with that date as the setting.  Should time not affect your setting at all, simply use the methods
            without the date parameter.
            </summary>
        </member>
        <member name="M:Habanero.Base.ISettings.HasSetting(System.String)">
            <summary>
             Returns whether the setting exists or not.
            </summary>
            <param name="settingName">The name of the setting to look for.</param>
            <returns>Returns whether the setting exists or not</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.GetString(System.String)">
            <summary>
            Returns a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.GetString(System.String,System.DateTime)">
            <summary>
            Returns a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date of the setting</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.SetString(System.String,System.String)">
            <summary>
            Sets a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set it to</param>
        </member>
        <member name="M:Habanero.Base.ISettings.GetDecimal(System.String,System.DateTime)">
            <summary>
            Returns a specified setting as a decimal
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date of the setting 
            (ie this will return the setting value as at the specified date)</param>
            <returns>Returns a decimal</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.GetDecimal(System.String)">
            <summary>
            Returns a specified setting as a decimal, with Now as the specified date
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a decimal</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.SetDecimal(System.String,System.Decimal)">
            <summary>
            Sets the setting with the specified name to the specified value (with a date of Now)
            Note_: If no setting exists it should be created.
            </summary>
            <param name="settingName">The name of the setting</param>
            <param name="settingValue">The value to set the setting to</param>
        </member>
        <member name="M:Habanero.Base.ISettings.GetBoolean(System.String)">
            <summary>
            Returns a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a boolean</returns>
        </member>
        <member name="M:Habanero.Base.ISettings.SetBoolean(System.String,System.Boolean)">
            <summary>
            Sets a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <param name="boolValue">The value to set it to</param>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.#ctor">
            <summary>
            Initialises a new settings store with the default Exe config settings storer.
            </summary>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.#ctor(System.Configuration.Configuration)">
            <summary>
             Initialises a new settings store with the specified config settings storer.
            </summary>
            <param name="configuration">The Configuration to use to store the settings.</param>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.HasSetting(System.String)">
            <summary>
             Returns whether the setting exists or not.
            </summary>
            <param name="settingName">The name of the setting to look for.</param>
            <returns>Returns whether the setting exists or not</returns>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.GetString(System.String)">
            <summary>
            Returns the configuration for the setting name provided
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.GetString(System.String,System.DateTime)">
            <summary>
            Not supported by ConfigFileSettings
            </summary>
            <param name="settingName"></param>
            <param name="date"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.SetString(System.String,System.String)">
            <summary>
            Sets a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set it to</param>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.GetDecimal(System.String,System.DateTime)">
            <summary>
            Not supported by ConfigFileSettings
            </summary>
            <exception cref="T:System.NotSupportedException">Thrown any time this
            method is called</exception>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.GetDecimal(System.String)">
            <summary>
            Returns the configuration for the setting name provided
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.SetDecimal(System.String,System.Decimal)">
            <summary>
            Not supported by ConfigFileSettings
            </summary>
            <param name="settingName"></param>
            <param name="settingValue"></param>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.GetBoolean(System.String)">
            <summary>
            Returns a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a boolean</returns>
        </member>
        <member name="M:Habanero.Util.ConfigFileSettings.SetBoolean(System.String,System.Boolean)">
            <summary>
            Sets a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <param name="boolValue">The value to set it to</param>
        </member>
        <member name="T:Habanero.Base.PropReadWriteRule">
            <summary>
            An enumeration used to specify different file access modes.
            </summary>
        </member>
        <member name="F:Habanero.Base.PropReadWriteRule.ReadWrite">
            <summary>Full access</summary>
        </member>
        <member name="F:Habanero.Base.PropReadWriteRule.ReadOnly">
            <summary>Read but not write/edit</summary>
        </member>
        <member name="F:Habanero.Base.PropReadWriteRule.WriteOnce">
            <summary>Can only be edited it if was never edited before 
            (regardless of whether the object is new or not)</summary>
        </member>
        <member name="F:Habanero.Base.PropReadWriteRule.WriteNotNew">
            <summary>Can only be edited if the object is not new. 
            I.e. the property can only be updated but never created in a new object that is being inserted</summary>
        </member>
        <member name="F:Habanero.Base.PropReadWriteRule.WriteNew">
            <summary>Can only be edited if the object is new. 
            I.e. the property can only be inserted and can never be updated after that</summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.ExceptionUtilities">
            <summary>
            Provides utilities to display or manipulate exceptions
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.ExceptionUtilities.Display(System.Exception)">
            <summary>
            Displays a given exception in either a MessageBox (if it is a
            UserException) or the UIExceptionNotifier as specified at the
            start of the application
            </summary>
            <param name="ex">The exception to display</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.ExceptionUtilities.GetExceptionString(System.Exception,System.Int32,System.Boolean)">
            <summary>
            Arranges the exception into a readable string to be shown to the
            final user
            </summary>
            <param name="ex">The exception to display</param>
            <param name="indent">The amount of indentation, used by the
            application to indent inner exceptions, so you can set this to zero</param>
            <param name="showStackTrace">False will display just the error
            messages and true will add the stack trace</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.Exceptions.ExceptionUtilities.GetIndent(System.Int32)">
            <summary>
            Creates a string of spaces to serve as an indentation for the text
            </summary>
            <param name="numberOfSpaces">The number of spaces to indent by</param>
            <returns>Returns a string</returns>
        </member>
        <member name="T:Habanero.Base.ITransactional">
            <summary>
             An interface used by the transaction committer or any other strategy for updating items in a transaction.
             This inteface will usually be specialised for file, XML or database e.g. for a database <see cref="T:Habanero.Base.ITransactionalDB"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.ITransactional.TransactionID">
            <summary>
            </summary>
            <returns>The ID that uniquelty identifies this item of the transaction. In the case of business objects the object Id.
             for non business objects that no natural id exists for the particular transactional item a guid that uniquely identifies 
             transactional item should be generated. This is used by the transaction committer to ensure that the transactional item
             is not added twice in error.</returns>
        </member>
        <member name="M:Habanero.Base.ITransactional.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.Base.ITransactional.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="T:Habanero.Base.ISupportsAutoIncrementingField">
            <summary>
             Interface for any object that needs to support an using a datasource Incrementing autonumber field.
             Objects utilising this interface can be updated with the autonumber as generated by the datasource
             when a new object is persisted.
            </summary>
        </member>
        <member name="M:Habanero.Base.ISupportsAutoIncrementingField.SetAutoIncrementingFieldValue(System.Int64)">
            <summary>
            </summary>
            <param name="value">sets the objects autoincremented number from the database</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">
            <summary>
            Provides an exception to throw when the xml being
            examined is invalid or not well-formed
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidXmlDefinitionException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidXmlDefinitionException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidXmlDefinitionException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidXmlDefinitionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectEditor">
            <summary>
             A BusinessObjectEditor that passes off its logic to a delegate passed in the constructor.
            </summary>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectEditor`1">
            <summary>
             A BusinessObjectEditor that passes off its logic to a delegate passed in the constructor.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectEditor">
            <summary>
            Provides a facility to edit business objects
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectEditor.EditObject(Habanero.Base.IBusinessObject,System.String)">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectEditor.EditObject(Habanero.Base.IBusinessObject,System.String,Habanero.Base.PostObjectEditDelegate)">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <param name="postEditAction">Action to be performed when the editing is completed or cancelled. Typically used if you want to update
            a grid or a list in an asynchronous environment (E.g. to select the recently edited item in the grid)</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectEditor`1.#ctor(Habanero.Base.DelegatedBusinessObjectEditor{`0}.EditObjectDelegate)">
            <summary>
             Initialises the <see cref="T:Habanero.Base.DelegatedBusinessObjectEditor`1"/> with the specified delegate.
            </summary>
            <param name="editObjectDelegate">The delegate to be executed when EditObject is called.</param>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectEditor`1.EditObject(Habanero.Base.IBusinessObject,System.String)">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectEditor`1.EditObject(Habanero.Base.IBusinessObject,System.String,Habanero.Base.PostObjectEditDelegate)">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <param name="postEditAction">Action to be performed when the editing is completed or cancelled. Typically used if you want to update
            a grid or a list in an asynchronous environment (E.g. to select the recently edited item in the grid)</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="T:Habanero.Base.DelegatedBusinessObjectEditor`1.EditObjectDelegate">
            <summary>
             The delegate for the EditObject methods.
            </summary>
             <param name="obj">The object to edit</param>
             <param name="uiDefName">The name of the set of ui definitions
             used to design the edit form. Setting this to an empty string
             will use a ui definition with no name attribute specified.</param>
             <param name="postEditAction">The delete to be executeActionOn After The edit is saved.
             will be the object that the method is called on</param>
             <returns>Returs true if edited successfully of false if the edits
             were cancelled</returns>
        </member>
        <member name="M:Habanero.Base.DelegatedBusinessObjectEditor.#ctor(Habanero.Base.DelegatedBusinessObjectEditor{Habanero.Base.IBusinessObject}.EditObjectDelegate)">
            <summary>
             Initialises the <see cref="T:Habanero.Base.DelegatedBusinessObjectEditor"/> with the specified delegate.
            </summary>
            <param name="editObjectDelegate">The delegate to be executed when EditObject is called.</param>
        </member>
        <member name="T:Habanero.Base.BOEventArgs">
            <summary>
            Provides arguments to attach for an event involving business objects
            </summary>
        </member>
        <member name="M:Habanero.Base.BOEventArgs.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise a new set of arguments
            </summary>
            <param name="bo">The related business object</param>
        </member>
        <member name="P:Habanero.Base.BOEventArgs.BusinessObject">
            <summary>
            Returns the business object related to the event
            </summary>
        </member>
        <member name="T:Habanero.Base.BOEventArgs`1">
            <summary>
            Provides arguments to attach for an event involving business objects
            </summary>
        </member>
        <member name="M:Habanero.Base.BOEventArgs`1.#ctor(`0)">
            <summary>
            Constructor to initialise a new set of arguments
            </summary>
            <param name="bo">The related business object</param>
        </member>
        <member name="P:Habanero.Base.BOEventArgs`1.BusinessObject">
            <summary>
            Returns the business object related to the event
            </summary>
        </member>
        <member name="T:Habanero.Util.StringUtilities">
            <summary>
            Provides a collection of utilities for strings
            </summary>
        </member>
        <member name="M:Habanero.Util.StringUtilities.ReplaceSingleQuotesWithTwo(System.String)">
            <summary>
            Replaces single quotes with two single quotes in the given string
            </summary>
            <param name="value">The string to amend</param>
            <returns>Returns the reformatted string</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.ReplaceDoubleQuotesWithTwo(System.String)">
            <summary>
            Replaces double quotes with two double quotes in the given string
            </summary>
            <param name="value">The string to amend</param>
            <returns>Returns the reformatted string</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.DelimitPascalCase(System.String,System.String)">
            <summary>
            Breaks up a Pascal-cased string into sections that are divided
            by the given delimiter.  For instance, an input string of
            "PascalCase" and a delimiter of " " will give "Pascal Case"
            </summary>
            <param name="inputString">The string to delimit</param>
            <param name="delimiter">The delimiter to insert between
            sections, such as a space or comma</param>
            <returns>Returns the delimited string</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.Singularize(System.String)">
            <summary>
            Singularises the input string using heuristics and rule.
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.Pluralize(System.String)">
            <summary>
             Pluralises a noun using standard rule e.g. Name => Names
             Pantry => Pantries.
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.Humanize(System.String)">
            <summary>
            Replaces all _ with whites space
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.Classify(System.String)">
            <summary>
            Create a classification of the input this is a Singular of the input
              Camel cased.
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.PascalCaseTableName(System.String)">
            <summary>
            Pascal Cases a table name that has as seperator '_', '-' or ' ' in it so that the 
             the pascal casing will be done as  follows first letter is capitalised
             the first letter that follows a seperator is capitalised. All other letters are left unchanged.
            </summary>
            <param name="text"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.IsManyPascalWords(System.String)">
            <summary>
            Determines whether the word is already pascal cased. 
            This will return true when.
            </summary>
            <param name="text"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.RemovePrefix(System.String,System.String)">
            <summary>
             Removes a prefix defined by prefix from the text if it is found to be the leading characters of text.
            </summary>
            <param name="prefix"></param>
            <param name="text"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.ToLowerFirstLetter(System.String)">
            <summary>
             Changes the first character to a lowercase.
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GuidTryParse(System.String,System.Guid@)">
            <summary>
            Converts the string representation of a Guid to its Guid
            equivalent. A return value indicates whether the operation
            succeeded.
            </summary>
            <param name="s">A string containing a Guid to convert.</param>OwningClassDef
            <param name="result">
            When this method returns, contains the Guid value equivalent to
            the Guid contained in <paramref name="s"/>, if the conversion
            succeeded, or <see cref="F:System.Guid.Empty"/> if the conversion failed.
            The conversion fails if the <paramref name="s"/> parameter is a
            <see langword="null"/> reference (<see langword="Nothing"/> in
            Visual Basic), or is not of the correct format.
            </param>
            <value>
            <see langword="true"/> if <paramref name="s"/> was converted
            successfully; otherwise, <see langword="false"/>.
            </value>
            <exception cref="T:System.ArgumentNullException">
                   Thrown if <pararef name="s"/> is <see langword="null"/>.
            </exception>
        </member>
        <member name="M:Habanero.Util.StringUtilities.BoolTryParse(System.Object,System.Boolean@)">
            <summary>
             Converts a string representing a boolean in one of many formats.
            </summary>
            <param name="valueToParse">string to be parsed</param>
            <param name="result">the resultant parsed value if parsing was a success</param>
            <returns>true if string was parsed false otherwise</returns>
            <exception cref="T:System.ArgumentNullException">
               Thrown if <pararef name="s"/> is <see langword="null"/>.
             </exception>
        </member>
        <member name="M:Habanero.Util.StringUtilities.CountOccurrences(System.String,System.String)">
            <summary>
            Indicates the number of times a given string appears in a larger string
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="searchText">The section to search for</param>
            <returns>Returns the number of occurrences</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.CountOccurrences(System.String,System.String,System.Int32,System.Int32)">
            <summary>
            Indicates the number of times a given string appears in a larger string
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="searchText">The section to search for</param>
            <param name="startIndex">The index of the position to start counting occurences from.</param>
            <param name="length">The length of text to count occurences from.</param>
            <returns>Returns the number of occurrences</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.CountOccurrences(System.String,System.Char)">
            <summary>
            Indicates the number of times a given token appears in a string
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="token">The token to search for</param>
            <returns>Returns the number of occurrences of the token</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.CountOccurrences(System.String,System.Char,System.Int32,System.Int32)">
            <summary>
            Indicates the number of times a given token appears in a string
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="token">The token to search for</param>
            <param name="startIndex">The index of the position to start counting occurences from.</param>
            <param name="length">The length of text to count occurences from.</param>
            <returns>Returns the number of occurrences of the token</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GetLeftSection(System.String,System.String)">
            <summary>
            Returns the portion of the string that is left of the given
            search text
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="searchText">The section to the right of the desired
            text</param>
            <returns>Returns the abbreviated string portion</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GetRightSection(System.String,System.String)">
            <summary>
            Returns the portion of the string that is right of the given
            search text
            </summary>
            <param name="fullText">The string to search within</param>
            <param name="searchText">The section to the left of the desired
            text</param>
            <returns>Returns the abbreviated string portion</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.AppendMessage(System.String,System.String)">
            <summary>
            Appends a given message to an existing message, inserting
            a new line (carriage return) between the messages
            </summary>
            <param name="origMessage">The existing message (left part)</param>
            <param name="messageToAppend">The message to add on (right part)</param>
            <returns>Returns the combined string</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.AppendMessage(System.String,System.String,System.String)">
            <summary>
            Appends a given message to an existing message, using the given separator
            betweeen the two parts.
            Ensures that the seperator is only inserted between two appended messages.
            I.e. there will never be a trailing seperator.
            </summary>
            <param name="origMessage">The existing message (left part)</param>
            <param name="messageToAppend">The message to add on (right part)</param>
            <param name="separator">The separator to insert between the two
            parts</param>
            <returns>Returns the combined message</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.AppendMessage(System.Text.StringBuilder,System.String,System.String)">
            <summary>
            Appends a given message to an existing message contained in a string builder
            </summary>
            <param name="origStringBuilder">The string builder that contains the original
            message</param>
            <param name="appendedString">The message to add on (right part)</param>
            <param name="separator">The separator to insert between the two parts</param>
            <returns>Returns the combined message</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GetValueString(System.String,System.String)">
            <summary>
            For a given name value pair e.g. a query string or cookie string that is formatted
            as name=value&amp;name2=value2&amp;name3=value3 etc this will return the value for a specified
            name e.g. for nameValuePairString = "name=value&amp;name2=value2&amp;name3=value3" and name = "name2"
            GetValueString will return value2.
            </summary>
            <param name="nameValuePairString">The name value pair to parse</param>
            <param name="name">The name of the name value pair for which you want the value</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GetNameValueCollection(System.String)">
            <summary>
            returns a NameValueCollection of nameValue Pairs for the nameValuePairString.
            e.g. nameValuePairString = "name=value&amp;name2=value2&amp;name3=value3" will return a 
            NameValueCollection with 3 items for name, name2 and name3.
            </summary>
            <param name="nameValuePairString">The name value pair to split.</param>
            <returns>The new collection containing the name value pair items.</returns>
        </member>
        <member name="M:Habanero.Util.StringUtilities.GuidToUpper(System.Guid)">
            <summary>
             Returns the guid as a string with a standard format of "B" and with all the characters
               changed to upper.
            </summary>
            <param name="guid"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.Util.ReflectionUtilities">
            <summary>
             This class contains methods that use reflection to perform 
             different operations on objects.
            </summary>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.SetEnumPropertyValue(System.Object,System.String,System.String)">
            <summary>
             This method is used to set the enum value of a property of an object.
             This is done entirely using reflection.
            </summary>
            <param name="obj">The object for which the property is being set</param>
            <param name="propertyName">The name of the property being set</param>
            <param name="enumItemName">The name of the Enumerated value (eg. this value for "TypeCode.Int64" would be "Int64")</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetEnumPropertyValue(System.Object,System.String)">
            <summary>
             This method is used to get the enum value of a property of an object as a string.
             This is done entirely using reflection.
            </summary>
            <param name="obj">The object for which the property value is being requested</param>
            <param name="propertyName">The name of the property being set</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPropertyValue(System.Object,System.String)">
            <summary>
             Returns the value of a property of an object using reflection
            </summary>
            <param name="obj">The object to get the value from</param>
            <param name="propertyName">The name of the property to get the value from</param>
            <returns>The value of the specified property of the supplied object</returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">This error is thrown when there is an error in finding the property on the supplied object</exception>
            <exception cref="T:System.Exception">This is a general exception that is thrown if there is an error in retrieving the value.</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPropertyInfo(System.Type,System.String)">
            <summary>
             Returns the PropertyInfo for the specified property, otherwise it returns nothing if the property does not exist
            </summary>
            <param name="type">The type to find the specifed property on</param>
            <param name="propertyName">The name of the property to search for</param>
            <returns>The PropertyInfo object representing the requested method, or null if it does not exist.</returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPrivatePropertyValue(System.Object,System.String)">
            <summary>
             Returns the value for a private property
            </summary>
            <param name="obj">The object to get the value from</param>
            <param name="propertyName">The name of the property to get the value from</param>
            <returns>The value of the specified property of the supplied object</returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException"></exception>
            <exception cref="T:System.Reflection.TargetInvocationException"></exception>
            <exception cref="T:System.Exception"></exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPrivatePropertyInfo(System.Type,System.String)">
             <summary>
             Returns the PropertyInfo for a Private Property
             </summary>
            <param name="type">The type to find the specifed property on</param>
            <param name="propertyName">The name of the property to search for</param>
            <returns>The PropertyInfo object representing the requested method, or null if it does not exist.</returns>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetMethodInfo(System.Type,System.String)">
            <summary>
             Returns the MethodInfo for the specified property, otherwise it 
                returns nothing if the property does not exist
            </summary>
            <param name="type">The type to find the specifed property on</param>
            <param name="methodName">The name of the property to search for</param>
            <returns>The PropertyInfo object representing the requested method, or null if it does not exist.</returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPrivateMethodInfo(System.Type,System.String)">
            <summary>
             Returns the MethodInfo for the specified property, otherwise it 
                returns nothing if the property does not exist
            </summary>
            <param name="type">The type to find the specifed property on</param>
            <param name="methodName">The name of the property to search for</param>
            <returns>The PropertyInfo object representing the requested method, or null if it does not exist.</returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.SetPropertyValue(System.Object,System.String,System.Object)">
            <summary>
             Sets the value of a property of an object using reflection
            </summary>
            <param name="obj">The object for which to set the value</param>
            <param name="propertyName">The name of the property to be set</param>
            <param name="value">The value that is to be set</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">This error is thrown when there is an error in finding the property on the supplied object</exception>
            <exception cref="T:System.Exception">This is a general exception that is thrown if there is an error in retrieving the value.</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.SetPrivatePropertyValue(System.Object,System.String,System.Object)">
            <summary>
             Sets the value of a property of an object using reflection
            </summary>
            <param name="obj">The object for which to set the value</param>
            <param name="propertyName">The name of the property to be set</param>
            <param name="value">The value that is to be set</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">This error is thrown when there is an error in finding the property on the supplied object</exception>
            <exception cref="T:System.Exception">This is a general exception that is thrown if there is an error in retrieving the value.</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.SetPropValue(System.Object,System.Reflection.PropertyInfo,System.Object)">
            <summary>
            Sets the <paramref name="value"/> onto the property identified by <paramref name="propInfo"/>
            for the object identified by <paramref name="obj"/>
            </summary>
            <param name="obj">The object on which the value is being set</param>
            <param name="propInfo">The Property Info for the type of object</param>
            <param name="value">The value that the property is being set for.</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.SetInternalPropertyValue(System.Object,System.String,System.Object)">
            <summary>
             Sets the value of a property of an object using reflection
            </summary>
            <param name="obj">The object for which to set the value</param>
            <param name="propertyName">The name of the property to be set</param>
            <param name="value">The value that is to be set</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">This error is thrown when an invalid parameter is given</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">This error is thrown when there is an error in finding the property on the supplied object</exception>
            <exception cref="T:System.Exception">This is a general exception that is thrown if there is an error in retrieving the value.</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.ExecuteMethod(System.Object,System.String)">
            <summary>
            Executes a parameterless method of an object using reflection
            </summary>
            <param name="obj">The object owning the method</param>
            <param name="methodName">The name of the method</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.ExecutePrivateMethod(System.Object,System.String)">
            <summary>
            Executes a parameterless method of an object using reflection
            </summary>
            <param name="obj">The object owning the method</param>
            <param name="methodName">The name of the method</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.ExecutePrivateMethod(System.Object,System.String,System.Object[])">
            <summary>
            Executes a parameterless method of an object using reflection
            </summary>
            <param name="obj">The object owning the method</param>
            <param name="methodName">The name of the method</param>
            <param name="arguments">The arguments for the private method</param>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetUndelyingPropertType(System.Type,System.String)">
            <summary>
            Returnes the Prop Type for the Prop propName.
            If the Prop is Nullable then it returns the underlying type.
            (i.e bool? will return bool)
            </summary>
            <param name="classType"></param>
            <param name="propName"></param>
            <returns>The Property Type</returns>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetUndelyingPropertType(System.Reflection.PropertyInfo)">
            <summary>
            Returnes the Prop Type for the PropertyInfo.
            If the PropertyInfo is Nullable then it returns the underlying type. 
            (i.e bool? will return bool)
            </summary>
            <param name="propertyInfo"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetNullableUnderlyingType(System.Type)">
            <summary>
             Returns the Underlying type if <paramref name="type"/> is Nullable
             Else returns the Type
             i.e. Guid? returns Guid
              and Guid returns Guid
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.IsNullableType(System.Type)">
            <summary>
             Returns true if the Type is Nullable e.g. Guid? or int?
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPropertyName``2(System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Returns the Property Name of the property used in the Lambda expression of type
            bo -&gt; bo.MyProperty. This function will return 'MyProperty'.
            </summary>
            <typeparam name="TModel">The object whose Property Name is being returned</typeparam>
            <typeparam name="TReturn">The Return type of the Lambda Expression</typeparam>
            <param name="propExpression">The Lambda expression</param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"> Exception if the lamda is not a lambda for a property</exception>
        </member>
        <member name="M:Habanero.Util.ReflectionUtilities.GetPropertyInfo``2(System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Returns the <see cref="T:System.Reflection.PropertyInfo"/> of the property used in the Lambda expression of type
            bo -&gt; bo.MyProperty. This function will return the PropertyInfo for MyProperty.
            </summary>
            <typeparam name="TModel">The object whose PropertyInfo is being returned</typeparam>
            <typeparam name="TReturn">The Return type of the Lambda expression</typeparam>
            <param name="propExpression">The Lambda expression</param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"> Exception if the lamda is not a lambda for a property</exception>
        </member>
        <member name="T:Habanero.Base.ISqlStatementCollection">
            <summary>
            An interface to model a collection of sql statements
            </summary>
        </member>
        <member name="M:Habanero.Base.ISqlStatementCollection.Add(Habanero.Base.ISqlStatement)">
            <summary>
            Adds a sql statement object to the collection
            </summary>
            <param name="statement">The sql statement object</param>
        </member>
        <member name="M:Habanero.Base.ISqlStatementCollection.Add(Habanero.Base.ISqlStatementCollection)">
            <summary>
            Adds the contents of another sql statement collection into this
            collection
            </summary>
            <param name="statementCollection">The other collection</param>
        </member>
        <member name="M:Habanero.Base.ISqlStatementCollection.Insert(System.Int32,Habanero.Base.ISqlStatement)">
            <summary>
            Inserts a sql statement object at the position specified
            </summary>
            <param name="index">The position to insert at</param>
            <param name="sql">The sql statement object to add</param>
        </member>
        <member name="P:Habanero.Base.ISqlStatementCollection.Count">
            <summary>
            Returns the number of statements in the collection
            </summary>
        </member>
        <member name="P:Habanero.Base.ISqlStatementCollection.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to check</param>
            <returns>Returns the sql statement at the index position
            chosen</returns>
        </member>
        <member name="T:Habanero.Base.BusinessObjectCreator`1">
            <summary>
             An abstract base class for Business Object creators, created for convenience as it is strongly typed.
            </summary>
            <typeparam name="T">The type of BO this creator creates.</typeparam>
        </member>
        <member name="M:Habanero.Base.BusinessObjectCreator`1.Habanero#Base#IBusinessObjectCreator#CreateBusinessObject">
            <summary>
            Creates the object, without editing or saving it.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.BusinessObjectCreator`1.CreateBusinessObject">
            <summary>
            Just creates the object, without editing or saving it.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIForm">
            <summary>
            An interface describing a form consisting of one or more <see cref="T:Habanero.BO.ClassDefinition.IUIFormTab"/> objects.  
            Implemented by UIForm.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIForm.Add(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Adds a tab to the form
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIForm.Remove(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Removes a tab from the form
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIForm.Contains(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Checks if the form contains the specified tab
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIForm.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIForm.Width">
            <summary>
            Gets and sets the width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIForm.Height">
            <summary>
            Gets and sets the height
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIForm.Title">
            <summary>
            Gets and sets the heading
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIForm.UIDef">
            <summary>
             The UI Def that this UIForm is related to.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">
            <summary>
            Provides an exception to throw when a relationship is accessed
            in an invalid way.  This usually occurs when a multiple relationship
            was expected and a single one was specified, or vice versa.
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipAccessException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipAccessException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipAccessException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipAccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.DeleteParentAction">
            <summary>
            An enumeration that gives some instructions or limitations in the
            case where a parent is to be deleted.
            </summary>
        </member>
        <member name="F:Habanero.Base.DeleteParentAction.DeleteRelated">
            <summary>Delete all related objects when the parent is deleted</summary>
        </member>
        <member name="F:Habanero.Base.DeleteParentAction.DereferenceRelated">
            <summary>Dereference all related objects when the parent is deleted</summary>
        </member>
        <member name="F:Habanero.Base.DeleteParentAction.Prevent">
            <summary>Prevent deletion of parent if it has related objects</summary>
        </member>
        <member name="F:Habanero.Base.DeleteParentAction.DoNothing">
            <summary>Don't perform any delete related activities on the businessobjects in this relationship</summary>
        </member>
        <member name="T:Habanero.Base.InsertParentAction">
            <summary>
            An enumeration that gives some instructions or limitations in the
            case where a parent is saved and the related objects are new.
            For Composition and Aggregation this is always true.
            This control is only required for an association relationship (<see cref="T:Habanero.Base.RelationshipType"/>.
            In this case there are two options 
            <li>1) If the owing BO is saved and there are new 
            objects related to it via this relationship then these new related objects must be inserted.</li>
            <li>2) If the owning BO is saved and there are new objects related to it via this relationship then
              these new objects must not be inserted. This is required where the Related Business Object has other Foreign keys
              and the inserted business object may result in Referential integrity violations in a relational database.</li>
            </summary>
        </member>
        <member name="F:Habanero.Base.InsertParentAction.InsertRelationship">
            <summary>Inserts the RelatedObject related objects if required when the parent is saved</summary>
        </member>
        <member name="F:Habanero.Base.InsertParentAction.DoNothing">
            <summary>Don't perform any insert related activities on the businessobjects in this relationship</summary>
        </member>
        <member name="T:Habanero.Base.RelationshipType">
            <summary>
            An enumeration that provides instructions or limitations on the child business object being added/removed 
            from the relationship as well as differentiating when the owning business object is viewed as dirty.
            This typically differs for a Composition, Aggregation, or Association relationship.
            </summary>
        </member>
        <member name="F:Habanero.Base.RelationshipType.Association">
             <summary>
             Association a related object can be removed, added, deleted or created via the relationship.
               A related object being removed will be dereferenceed.
               A related object being added will be referenced.
               The owning business object is not considered to be dirty because its 
                 related business objects are dirty.
            •	A typical example of an associative relationship is a Manager and her Departments (assuming a Manager can manage many departments but a department may only have one manager). A Manager can exist independently of any Department and a Department can exist independently of a Manager. The Manager may however be associated with one Department and later associated with a different Department.
            •	Unlike a Car and its wheels the Department is not part of a Manager or visa versa.
            •	The rules for whether a manager that is associated with one or more departments can be deleted or not is dependent upon the rules configured for the Departments relationship (i.e. a Manager’s Departments relationship could be marked prevent delete, dereference or do nothing). 
            •	An already persisted Department can be added to a the Manager’s Departments relationship (In Habanero a new Department can be added to a Manager’s Departments relationship).
            •	A driver can be removed from its related car. 
            •	A Manager can create a new Department via its Departments Relationship (this is not a strict implementation of domain design but is allowed due to the convenience of this).
            •	A Manager is considered to be dirty only if it has added, created, MarkedForDeletion or removed dirty Departments. 
            •	If a Manager is persisted then it will only persist its Department’s relationship and will not persist a related Department that is dirty (I.e. if a department has been added to the Relationship then it’s foreign key (ManagerID) will be updated. The department name could also have been edited. If the manager is saved then the foreign key (ManagerID) will be updated but the department name will not be updated).
             </summary>
        </member>
        <member name="F:Habanero.Base.RelationshipType.Aggregation">
             <summary>
             •	A typical example of an aggregation relationship is a Car and its Tyres. A Tyre is part of a Car. A Tyre can exist independently of its Car and a Tyre can only belong to a single Car at any point in time. The Tyre may however be transferred from one car to another. 
            •	The Car that has tyres cannot be deleted without it deleting or removing its tyres. The car’s Tyres relationship would be marked as either prevent delete, dereference tyres, delete tyres or do nothing. 
            •	An already persisted tyre can be added to a car (In Habanero a new tyre can be added to a car). 
            •	A tyre can be removed from its car. 
            •	A car can create a new tyre via its Tyres Relationship (This is not a strict implementation of Domain modelling rules but is allowed due to the convenience of this method).
            •	A car is considered to be dirty if it has any dirty tyres. A dirty tyre would be any tyre that has had any edits and would include a newly created tyre, an added tyre, a removed tyre or a tyre that has been marked for deletion.
            •	If a car is persisted then it must persist all its tyres.
             </summary>
        </member>
        <member name="F:Habanero.Base.RelationshipType.Composition">
             <summary>
             •	A typical example of a composition relationship is an Invoice and its Invoice lines. An invoice is made up of its invoice lines. An Invoice Line is part of an Invoice. An invoice Line cannot exist independently of its invoice and an invoice line can only belong to a single invoice.
            •	An invoice that has invoice lines cannot be deleted without it deleting its invoice lines. The invoice’s InvoiceLines relationship would be marked as either prevent delete, delete invoice lines or do nothing.
            •	An already persisted invoice line cannot be added to an Invoice (In Habanero a new invoice line can be added to an invoice). 
            •	An Invoice line cannot be removed from its invoice.
            •	An invoice can create a new invoice line via its InvoiceLines Relationship.
            •	An invoice is considered to be dirty if it has any dirty invoice line. A dirty invoice line would be any invoice line that is dirty and would include a newly created invoice line and an invoice line that has been marked for deletion.
            •	If an invoice is persisted then it must persist all its invoice lines.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOPropCol">
            <summary>
            Manages a collection of IBOProp objects (See <see cref="T:Habanero.Base.IBOProp"/>)
            Typically this collection is created when the <see cref="T:Habanero.Base.IBusinessObject"/>
             is created. The collection is created based on Property Definition (<see cref="T:Habanero.Base.IPropDef"/>)
             for the Class definition (<see cref="T:Habanero.Base.IClassDef"/>) that defines the Business Object (<see cref="T:Habanero.Base.IBusinessObject"/>).
            This collection in should thus not be used by the application developer.
            This collection is typically controlled by an <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.Add(Habanero.Base.IBOProp)">
            <summary>
            Adds a property to the collection
            </summary>
            <param name="boProp">The property to add</param>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.Add(Habanero.Base.IBOPropCol)">
            <summary>
            Copies the properties from another collection into this one
            </summary>
            <param name="propCol">A collection of properties</param>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.Remove(System.String)">
            <summary>
            Remove a specified property from the collection
            </summary>
            <param name="propName">The property name</param>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.Contains(System.String)">
            <summary>
            Indicates whether the collection contains the property specified
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if found</returns>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.RestorePropertyValues">
            <summary>
            Restores each of the property values to their PersistedValue
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.BackupPropertyValues">
            <summary>
            Copies across each of the properties' current values to their
            persisted values
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.IsValid(System.String@)">
            <summary>
            Indicates whether all of the held property values are valid
            </summary>
            <param name="invalidReason">A string to alter if one or more
            property values are invalid</param>
            <returns>Returns true if all the property values are valid, false
            if any one is invalid</returns>
        </member>
        <member name="M:Habanero.Base.IBOPropCol.IsValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the held property values are valid
            </summary>
            <param name="errors">A list of <see cref="T:Habanero.Base.IBOError"/> describing all the errors in this IBOPropCol</param>
            <returns>Returns true if all the property values are valid, false
            if any one is invalid</returns>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.Item(System.String)">
            <summary>
            Provides an indexing facility so the contents of the collection
            can be accessed with square brackets like an array
            </summary>
            <param name="propName">The name of the property to access</param>
            <returns>Returns the property if found, or null if not</returns>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.DirtyXml">
            <summary>
            Returns an xml string containing the properties whose values
            have changed, along with their old and new values
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.Values">
            <summary>
            Returns a collection containing all the values being held
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.SortedValues">
            <summary>
            Returns the collection of property values as a SortedList
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.Count">
            <summary>
             Returns a count of the number of properties <see cref="T:Habanero.Base.IBOProp"/> in the properties collection.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOPropCol.HasAutoIncrementingField">
            <summary>
            Indicates whether any of the properties in this collection are defined as autoincrementing fields.
            An auto incrementing field is a field that relies on the database auto incrementing a number.
            E.g. every time a new row is inserted into a table the value of the auto incrementing field is 
            incremented. To update the business object accordingly this value needs to be updated to the 
            matching property
            </summary>
        </member>
        <member name="T:Habanero.Base.BOPropEventArgs">
            <summary>
            Provides BOProp related arguments to an event
            </summary>
        </member>
        <member name="M:Habanero.Base.BOPropEventArgs.#ctor(Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new event argument
            with the affected BOProp
            </summary>
            <param name="prop">The affected BOProp</param>
        </member>
        <member name="P:Habanero.Base.BOPropEventArgs.Prop">
            <summary>
            Gets the BOProp affected in the event
            </summary>
        </member>
        <member name="T:Habanero.Util.CSVFileWriter">
            <summary>
            Provides a writer for a CSV (Comma-separated value) file
            </summary>
        </member>
        <member name="M:Habanero.Util.CSVFileWriter.#ctor(System.String)">
            <summary>
            Constructor to initialise the writer
            </summary>
            <param name="fileName">The file name</param>
        </member>
        <member name="M:Habanero.Util.CSVFileWriter.#ctor(System.IO.TextWriter)">
            <summary>
            Constructor to initialise the writer
            </summary>
            <param name="textWriter">The text writer to use</param>
        </member>
        <member name="M:Habanero.Util.CSVFileWriter.WriteFromDataTable(System.Data.DataTable)">
            <summary>
            Writes to the file from the data table provided
            </summary>
            <param name="table">The data table</param>
        </member>
        <member name="M:Habanero.Util.CSVFileWriter.Close">
            <summary>
            Closes the writer
            </summary>
        </member>
        <member name="T:Habanero.Util.CSVFileReader">
            <summary>
            Provides a reader for a CSV (Comma-separated value) file
            </summary>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.#ctor(System.String)">
            <summary>
            Constructor to initialise a new reader
            </summary>
            <param name="fileName">The file name</param>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.#ctor(System.IO.TextReader)">
            <summary>
            Constructor to initialise a new reader
            </summary>
            <param name="textReader">The text reader to read the information from</param>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.MoveToNextLine">
            <summary>
            Moves the reader to the next line
            </summary>
            <returns>Returns true if done successfully, false if at the
            end of the file</returns>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.GetValues">
            <summary>
            Loads all the values for the current line and returns them in a list
            </summary>
            <returns>Returns a list of values</returns>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.GetValues(System.Int32)">
            <summary>
            Loads the values and returns them in a list
            </summary>
            <param name="numValues">The minimum number of values to load. 
            If there are more values than this number then all the values are loaded, 
            otherwise the extra required values are made up with empty strings.</param>
            <returns>Returns a list of values</returns>
        </member>
        <member name="M:Habanero.Util.CSVFileReader.Close">
            <summary>
            Closes the reader
            </summary>
        </member>
        <member name="T:Habanero.Base.IUIDef">
            <summary>
            Provides an interface for a UI definition.  This consists of a <see cref="T:Habanero.BO.ClassDefinition.IUIGrid"/> and <see cref="T:Habanero.BO.ClassDefinition.IUIForm"/> definition.
            </summary>
        </member>
        <member name="M:Habanero.Base.IUIDef.GetUIFormProperties">
            <summary>
            Returns the form property definitions
            </summary>
            <returns>Returns a UIForm object</returns>
        </member>
        <member name="M:Habanero.Base.IUIDef.GetUIGridProperties">
            <summary>
            Returns the grid property definitions
            </summary>
            <returns>Returns a UIGridDef object</returns>
        </member>
        <member name="M:Habanero.Base.IUIDef.GetFormField(System.String)">
            <summary>
             Returns the form field for this UIDefinition for the property specified.
             If the form field for the property is not defined in the uidef then null is returned.
            </summary>
            <param name="propertyName">The property name that you want the form field for</param>
            <returns>the form field or null</returns>
        </member>
        <member name="M:Habanero.Base.IUIDef.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="P:Habanero.Base.IUIDef.UIForm">
            <summary>
            Returns the form definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIDef.Name">
            <summary>
            Returns the name
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIDef.UIGrid">
            <summary>
            Returns the grid definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIDef.UIDefCol">
            <summary>
             Gets a Collection of UIDefs
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIDef.ClassDef">
            <summary>
            The Class Definition that this UIDef belongs to.
            </summary>
        </member>
        <member name="P:Habanero.Base.IUIDef.ClassName">
            <summary>
            Returns the ClassName of the Class tha this UIDef is for.
            </summary>S
        </member>
        <member name="T:Habanero.Base.ISecurityController">
            <summary>
             This is an interface for a class that has details and the necessary implementation 
             of the current security state of the system.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISecurityController.CurrentUserName">
            <summary>
             Returns the current user's name.
            </summary>
        </member>
        <member name="T:Habanero.Base.IPropDef">
            <summary>
             interface for a property definition.
            </summary>
        </member>
        <member name="M:Habanero.Base.IPropDef.AddPropRule(Habanero.Base.IPropRule)">
            <summary>
             Adds an <see cref="T:Habanero.Base.IPropRule"/> to the <see cref="P:Habanero.Base.IPropDef.PropRules"/> for the 
             Property Definiton.
            </summary>
            <param name="rule">The new rules to be added for the Property Definition.</param>
        </member>
        <member name="M:Habanero.Base.IPropDef.HasLookupList">
            <summary>
            Indicates whether this object has a LookupList object set
            </summary>
            <returns>Returns true if so, or false if the local
            LookupList equates to NullLookupList</returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.GetPropertyComparer``1">
            <summary>
            Returns an appropriate IComparer object depending on the
            property type.  Can be used, for example, to provide to the
            ArrayList.Sort() function in order to determine how to compare
            items.  Caters for the following types: String, Int, Guid,
            DateTime, Single, Double, TimeSpan 
            and anything else that supports IComparable.
            </summary>
            <returns>Returns an IComparer object, or null if the property
            type is not one of those mentioned above</returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.CreateBOProp(System.Boolean)">
            <summary>
            Creates a new Business Object property (BOProp)
            </summary>
            <param name="assignDefaultValue">Whether to initialise the property 
            with the default value.
            </param>
            <returns>The newly created BO property</returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.Equals(System.Object)">
            <summary>
             returns true if obj is equal to this object
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This method provides a the functionality to convert any object to the appropriate
              type for the particular BOProp Type. e.g it will convert a valid guid string to 
              a valid Guid Object.
            </summary>
            <param name="valueToParse">The value to be converted</param>
            <param name="returnValue"></param>
            <returns>An object of the correct type.</returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.ConvertValueToString(System.Object)">
            <summary>
            Converts the value of a valid type for this property definition to a string relevant.
            A null value will be oonverted to a zero length string.
            </summary>
            <param name="value">The value to be converted</param>
            <returns>The converted string.</returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.Clone">
            <summary>
             Makes a shallow clone of this property definition (i.e. the clone includes a list of all the
              property rules but the property rules have not been cloned
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IPropDef.IsValueValid(System.Object,System.String@)">
            <summary>
            Tests whether a specified property value is valid against the current
            property rule.  A boolean is returned and an error message,
            where appropriate, is stored in a referenced parameter.
            </summary>
            <param name="propValue">The property value to be tested in the user interface, clarifies error messaging</param>
            <param name="errorMessage">A string which may be amended to reflect
            an error message if the value is not valid</param>
            <returns>Returns true if valid, false if not</returns>
        </member>
        <member name="P:Habanero.Base.IPropDef.PropRules">
            <summary>
            Returns a List of PropRules <see cref="T:Habanero.Base.IPropRule"/> for the Property Definition.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.DatabaseFieldName">
            <summary>
            The database field name - this allows you to have a 
            database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.DefaultValue">
            <summary>
            The default value that a property of a new object will be set to
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.DefaultValueString">
            <summary>
            The default value that a property of a new object will be set to
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.LookupList">
            <summary>
            Provides access to read and write the ILookupList object
            in this definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.ReadWriteRule">
            <summary>
            Returns the rule for how the property can be accessed. 
            See the PropReadWriteRule enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.AutoIncrementing">
            <summary>
            Indicates whether this property is auto-incrementing (from the database)
            In this case when the BusinessObject is inserted the field will be filled
            from the database field.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.Length">
            <summary>
            Returns the maximum length for a string property
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.KeepValuePrivate">
            <summary>
             Returns whether this property should keep its value private where possible.
             This will usually be set to 'true' for password fields. This will then prevent
             the value being revealed in error messages and by default controls the user interface.
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDef.Persistable">
            <summary>
             Is this property persistable or not. This is used for special properties e.g. Dynamically inserted properties
             as for Asset Management System (See Intermap Asset Management) or for any reflective/calculated field that 
             you would like to store propdef information for e.g. rules, Units of measure etc.
             This will prevent the property from being persisted in the usual manner.
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelationshipDefCol">
            <summary>
            Manages a collection of relationship definitions
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelationshipDefCol.Add(Habanero.Base.IRelationshipDef)">
            <summary>
            Add an existing relationship to the collection
            </summary>
            <param name="relationshipDef">The existing relationship to add</param>
        </member>
        <member name="M:Habanero.Base.IRelationshipDefCol.Contains(System.String)">
            <summary>
            Indicates whether the collection contains the relationship
            definition specified
            </summary>
            <param name="keyName">The name of the definition</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="P:Habanero.Base.IRelationshipDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["marriage"])
            </summary>
            <param name="relationshipName">The name of the relationship to
            access</param>
            <returns>Returns the relationship definition that matches the
            name provided</returns>
        </member>
        <member name="P:Habanero.Base.IRelationshipDefCol.Count">
            <summary>
            Gets the count of items in this collection
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationshipDefCol.ClassDef">
            <summary>
            The ClassDef this RelationshipDefCol belongs to
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOStatus">
            <summary>
             The Current Status of a Business Object.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOStatus.IsValid(System.String@)">
            <summary>
            Indicates whether all of the property values of the object are valid and that the business object is a valid state to persist
            </summary>
            <param name="message">If the object is not valid then this returns the reason for it being invalid</param>
            <returns>Returns true if all are valid </returns>
        </member>
        <member name="M:Habanero.Base.IBOStatus.IsValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the property values of the object are valid and that the business object is a valid state to persist
            </summary>
            <param name="errors">If the object is not valid then this list is populated with the errors</param>
            <returns>Returns true if all are valid </returns>
        </member>
        <member name="M:Habanero.Base.IBOStatus.IsValid">
            <summary>
            Indicates whether all of the property values of the object are valid and that the business object is a valid state to persist
            </summary>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.Base.IBOStatus.HasWarnings(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the property values of the object are valid and that the business object is a valid state to persist.
            Also returns true if the Business Object has any warnings or Suggestions <see cref="T:Habanero.Base.ErrorLevel"/>.
            Warnings and Suggestions do not prevent the Business Object from being persisted but indicate that the
            Business object is not in a valid state e.g. A Customer order can be saved but cannot be Approved if it has warnings.
            </summary>
            <param name="errors">If the object is not valid then this list is populated with the errors</param>
            <returns>Returns true if all are valid </returns>
        </member>
        <member name="P:Habanero.Base.IBOStatus.IsNew">
            <summary>
            Indicates if the business object is new
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOStatus.IsDeleted">
            <summary>
            Indicates if the business object has been marked for deletion
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOStatus.IsEditing">
            <summary>
            Gets and sets the flag which indicates if the business object
            is currently being edited
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOStatus.IsDirty">
            <summary>
            Indicates whether the business object has been amended since it
            was last persisted to the database
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOStatus.IsValidMessage">
            <summary>
             Returns an invalid message if the object is valid <see cref="M:Habanero.Base.IBOStatus.IsValid"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOStatus.BusinessObject">
            <summary>
            Returns the Business Object that this Status is for.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidKeyException">
            <summary>
            Provides an exception to throw when a key is invalid
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidKeyException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidKeyException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidKeyException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidKeyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.BusinessObjectDTO">
            <summary>
             A Business Object Data Transfer Object. used for transferring objects accross a network e.g when loading from a
             remote database.
            </summary>
        </member>
        <member name="M:Habanero.Base.BusinessObjectDTO.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
            Constructs a DTO for a Business Object.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="P:Habanero.Base.BusinessObjectDTO.ClassDefName">
            <summary>
            the name of the <see cref="T:Habanero.Base.IClassDef"/> that this DTO is for.
            </summary>
        </member>
        <member name="P:Habanero.Base.BusinessObjectDTO.ClassName">
            <summary>
            the name of the <see cref="T:Habanero.Base.IBusinessObject"/> that this DTO is for
            </summary>
        </member>
        <member name="P:Habanero.Base.BusinessObjectDTO.AssemblyName">
            <summary>
            The Assembly name that this DTO is for.
            </summary>
        </member>
        <member name="P:Habanero.Base.BusinessObjectDTO.ID">
            <summary>
            The Unique identifier of this DTO.
            </summary>
        </member>
        <member name="P:Habanero.Base.BusinessObjectDTO.Props">
            <summary>
            A dictionalry of Properties keyed by the Property name for this DTO.
            </summary>
        </member>
        <member name="T:Habanero.Util.CrossThreadRunner">
            <summary>
            This class is used when you specifically require some code method to run in MTA or STA thread.
            </summary>
            <remarks>
            Unfortunately not all test runners implement the [RequireSTA] or other attributes such as config files.
            This may result in tests passing in NUnit GUI failing on the build server or failing on another developer's machine
            e.g. someone using Resharper. By using this Component you can ensure that the Individual test runs as required.
            The common requirement for STA threading is a visual component under test.
            </remarks>
            <example>
            <code>
                   [Test]<br/>
                   public void Test_SetSolution_WithNull_ShouldRaiseError()<br/>
                   {<br/>
                       CrossThreadRunner runner = new CrossThreadRunner();<br/>
                       runner.RunInSTA(delegate<br/>
                               {<br/>
                                   //---------------Set up test pack-------------------<br/>
                                   ReportSourceDefCreatorControl creatorControl = new ReportSourceDefCreatorControl();<br/>
                                   //---------------Assert Precondition----------------<br/>
                                   //---------------Execute Test ----------------------<br/>
                                   try<br/>
                                   {<br/>
                                       creatorControl.SetSolution(null);<br/>
                                       Assert.Fail("expected ArgumentNullException");<br/>
                                   }<br/>
                                       //---------------Test Result -----------------------<br/>
                                   catch (ArgumentNullException ex)<br/>
                                   {<br/>
                                       StringAssert.Contains("Value cannot be null", ex.Message);<br/>
                                       StringAssert.Contains("solution", ex.ParamName);<br/>
                                   }<br/>
                               });<br/>
                   }<br/>
            </code>
            </example> 
        </member>
        <member name="M:Habanero.Util.CrossThreadRunner.RunInMTA(System.Threading.ThreadStart)">
            <summary>
             Run the specified delegate in the MTA Thread.
            </summary>
            <param name="userDelegate">The delegate to be run in the MTA Thread</param>
        </member>
        <member name="M:Habanero.Util.CrossThreadRunner.RunInMTA``1(Habanero.Util.Function{``0})">
            <summary>
            Run the specified funcion delegate in the MTA Thread and return the return value of the function.
            </summary>
            <param name="function">The function delegate to be run in the MTA Thread</param>
            <returns>The return value of the function</returns>
        </member>
        <member name="M:Habanero.Util.CrossThreadRunner.RunInSTA(System.Threading.ThreadStart)">
            <summary>
             Run the specified delegate in the STA Thread.
            </summary>
            <param name="userDelegate">The delegate to be run in the STA Thread</param>
        </member>
        <member name="M:Habanero.Util.CrossThreadRunner.RunInSTA``1(Habanero.Util.Function{``0})">
            <summary>
            Run the specified funcion delegate in the STA Thread and return the return value of the function.
            </summary>
            <param name="function">The function delegate to be run in the STA Thread</param>
            <returns>The return value of the function</returns>
        </member>
        <member name="T:Habanero.Base.QueryField">
            <summary>
            Represents a field used in a query. In a database context, this represents a field listed 
            in the SELECT clause of a sql statement
            </summary>
        </member>
        <member name="M:Habanero.Base.QueryField.#ctor(System.String,System.String,Habanero.Base.Source)">
            <summary>
            Creates a QueryField with the given property name, field name and source name
            </summary>
            <param name="propertyName">The name of the property (as defined in the ClassDef) that this QueryField is for</param>
            <param name="fieldName">The name of the field in the data source that this QueryField is for</param>
            <param name="source">The source (such as a table) that this QueryField is from.</param>
        </member>
        <member name="M:Habanero.Base.QueryField.FromString(System.String)">
            <summary>
             Creates a <see cref="T:Habanero.Base.QueryField"/> object by parsing a string in the correct format.
             The format is:
             <para>&lt;queryField&gt; =&gt; [&lt;source&gt;.]&lt;fieldName&gt; </para>
             <para>&lt;source&gt; =&gt; [&lt;source&gt;.]&lt;sourceName&gt; </para>
             For example: <code>Surname</code> or <code>ContactPerson.Company.Name</code>
            </summary>
            <param name="fieldString">The string in the correct format (see above)</param>
            <returns>A <see cref="T:Habanero.Base.QueryField"/> created from the string</returns>
        </member>
        <member name="P:Habanero.Base.QueryField.PropertyName">
            <summary>
            The name of the property (as defined in the ClassDef) that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.QueryField.FieldName">
            <summary>
            The name of the field in the data source that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.QueryField.Source">
            <summary>
            The name of the source (such as a table name) that this QueryField is from.
            </summary>
        </member>
        <member name="T:Habanero.Base.ITransactionCommitter">
            <summary>
            This base class manages and commits a collection of ITransactions to a datasource. 
            The sub classes of this class implement a specific strategy e.g. Committing to a 
            database, file, message queue, Webservice etc.
            This provides an Implementation of the 'Unit of Work' Pattern 
            (Fowler - Patterns of Enterprise Application Architecture 184 
              ‘Maintains a list of objects affected by a business transaction and co-ordinates 
              the writing out of changes and the detection and resolution of concurrency problems’).
            <br/>
            
            The TransactionCommitter also implements the GOF Strategy Pattern and as such 
              the transaction committer can be implemented with a concrete class or the ITransactionCommitter
              can be implemented by the Application developer to provide any functionality required for the 
              updating of business objects to a datastore.
            <br/>
            The TransactionCommitter works with the TransactionalBusinessObject. 
            <br/>
            The TransactionalBusinessObject implements the GOF adaptor pattern. 
              As well as the Fowler - DataMapper 165 pattern. As such it
              wraps the business object and uses the Class definitions (MetaData Mapping Fowler 306) to map the
              business object to the Datastore. It also provides methods to call through to underlying Business
              object methods.
            <br/>
            The TransactionCommitter and TransactionalBusinessObject also work together to ensure that 
              all concurrency control <see cref="T:Habanero.Base.IConcurrencyControl"/> strategies for the business object have been 
              implemented.
            <br/>
            The Application developer can also add Transactions to the TransactionCommitter that are not Business objects
              these objects must implement the <see cref="T:Habanero.Base.ITransactional"/> interface. This is typically used 
              when the application developer needs to insert or updated a datasource that is not wrapped by a business object.
              E.g. The application developer may implement a NumberGenerator to generate a code e.g. Product code.
              The Habanero Framework uses this capability to write out TransactionLogTable.
            <br/>
            When <see cref="M:Habanero.Base.ITransactionCommitter.CommitTransaction"/> is called all the objects in the TransactionCommitter are executed to the
              datasource in the case of the TransactionCommitterDB these are executed within an individual 
              transaction if the transaction fails then all updates to the database are rolled back.
            <br/>
            In cases where a single object is edited and persisted the Transaction committer does not have to be 
              used by the Application developer. The architecture uses a convenience method
              <see cref="T:Habanero.Base.IBusinessObject"/>  <see cref="M:Habanero.Base.IBusinessObject.Save"/> this 
              creates the appropriate transactionCommitter and commits it.
            <br/>
            The TransactionCommitter is very simple to use the Application developer can add the required objects to
              Transaction Committer. When the business transaction is complete the <see cref="M:Habanero.Base.ITransactionCommitter.CommitTransaction"/> is called.
            <br/>
            <example>
                   ContactPerson contactP = New ContactPerson();
                   //set relevant data for contact person.
                   committerDB.AddBusinessObject(contactP);
                   committerDB.CommitTransaction();
            </example>
            </summary>
        </member>
        <member name="M:Habanero.Base.ITransactionCommitter.AddBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
             Add an object of type business object to the transaction.
             The DBTransactionCommiter wraps this Business Object in the
             appropriate Transactional Business Object
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.Base.ITransactionCommitter.AddTransaction(Habanero.Base.ITransactional)">
            <summary>
             This method adds an <see cref="T:Habanero.Base.ITransactional"/> to the list of transactions.
            </summary>
            <param name="transaction"></param>
        </member>
        <member name="M:Habanero.Base.ITransactionCommitter.CommitTransaction">
            <summary>
             Commit the transactions to the datasource e.g. the database, file, memory DB
            </summary>
            <returns></returns>
        </member>
        <member name="T:Habanero.Base.IConcurrencyControl">
            <summary>
            An interface to model optimistic or pessimistic concurrency
            control, as used by business objects.
            This interface fulfills the roll of the Strategy Object 
            in the GOF Strategy pattern.
            <br/><br/>
            Since this architecture/framework supports the storing of 
            objects in an object manager, it is possible to retrieve a 
            stale object that has since been edited by another user or process.
            This interface allows you to implement a concurrency control 
            strategy to deal with this by
            raising an error, automatically refreshing the object, putting 
            a read lock on the object or any other 
            strategy that you wish to implement.
            </summary>
        </member>
        <member name="M:Habanero.Base.IConcurrencyControl.CheckConcurrencyBeforeBeginEditing">
            <summary>
            Checks concurrency before the user begins editing an object, in
            order to avoid the user making changes to an object and then losing
            those changes when the committal process shows a concurrency
            failure.
            Strategy1: SemiOptimisitic Concurrency Control
            If another user has edited and persisted the object between when the 
            current user loaded the object and when she started editing the object
            a BusObjBeginEditConcurrencyControlException Exception will be thrown.
            Strategy2: Pessimistic ConcurrencyControl
            If another user has begun edits on an object then the object is marked
            as locked. Any other user may view the object but any user attempting
            to begin edits on the object will result in 
            a BusObjPessimisticConcurrencyControlException Exception
            </summary>
            <exception >BusObjBeginEditConcurrencyControlException</exception>
            <exception >BusObjPessimisticConcurrencyControlException</exception>
        </member>
        <member name="M:Habanero.Base.IConcurrencyControl.CheckConcurrencyBeforePersisting">
            <summary>
            Checks concurrency before persisting an object to the datasource
            in order to prevent one of two conflicting copies from being lost.
            If another user has edited and persisted the object between when the 
            current user started editing the object and tried to persist then a
            a BusObjOptimisticConcurrencyControlException Exception will be thrown.
            This would happen when an object is implementing a fully optimistic
            concurrency strategy.
            </summary>
            <exception >BusObjOptimisticConcurrencyControlException</exception>
        </member>
        <member name="M:Habanero.Base.IConcurrencyControl.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting">
            <summary>
            Many optimistic concurrency control strategies rely on updating 
            certain properties in the datasource, such as the version number,
            time last updated, etc. This method must be implemented in the 
            "concrete concurrency control strategy" to update the
            appropriate properties before the object is persisted to the 
            datasource.
            </summary>
        </member>
        <member name="M:Habanero.Base.IConcurrencyControl.ReleaseWriteLocks">
            <summary>
            If your concurrency control strategy involves write locks, then 
            this method must be implemented to release the write locks.
            </summary>
        </member>
        <member name="M:Habanero.Base.IConcurrencyControl.UpdateAsTransactionRolledBack">
            <summary>
             Makes any changes required to the concurrency control mechanism 
             to assert that the transaction has failed and thus been rolled back.
            </summary>
        </member>
        <member name="T:Habanero.Base.ErrorLevel">
            <summary>
            The Error Level for this Error e.g. Error or Warning
            </summary>
        </member>
        <member name="F:Habanero.Base.ErrorLevel.Error">
            <summary>
            Is this an Error e.g. the Object cannot be saved unless this is fixed.
            </summary>
        </member>
        <member name="F:Habanero.Base.ErrorLevel.Warning">
            <summary>
            Is this a warning e.g. the object can be saved but is not considered to be in a valid state until it is repaired.
            </summary>
        </member>
        <member name="F:Habanero.Base.ErrorLevel.Suggestion">
            <summary>
            Is this a suggestion e.g. the object can be saved and is considered valid but there may be a better way of doing it.
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOError">
            <summary>
            An interface representing a particular Error on a <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOError.BusinessObject">
            <summary>
            The Business Object that the error occured on.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOError.Level">
            <summary>
            The <see cref="T:Habanero.Base.ErrorLevel"/> of the business object.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBOError.Message">
            <summary>
            The Message to be shown to the End user for a particular error message.
            </summary>
        </member>
        <member name="T:Habanero.Base.RecordingExceptionNotifier">
            <summary>
             An Exception Notifier that records all exceptions it has been notified of.
            </summary>
        </member>
        <member name="M:Habanero.Base.RecordingExceptionNotifier.RethrowRecordedException">
            <summary>
             Rethrows the first recorded exception on the recorded exception stack if it exists.
            </summary>
        </member>
        <member name="M:Habanero.Base.RecordingExceptionNotifier.Notify(System.Exception,System.String,System.String)">
            <summary>
            Notifies the user of an exception that has occurred
            </summary>
            <param name="ex">The exception</param>
            <param name="furtherMessage">Any further error messages</param>
            <param name="title">The title</param>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.Exceptions">
            <summary>
             The details of the Exceptions that this <see cref="T:Habanero.Base.RecordingExceptionNotifier"/> has been notified of.
            </summary>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.ExceptionMessage">
            <summary>
             All the Exception messages for all logged Exceptions Concatenated.
            </summary>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.HasExceptions">
            <summary>
            Returns true if there are any Exceptons Recorded
            </summary>
        </member>
        <member name="T:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail">
            <summary>
             The details of an Exception that this <see cref="T:Habanero.Base.RecordingExceptionNotifier"/> has been notified of.
            </summary>
        </member>
        <member name="M:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail.#ctor(System.Exception,System.String,System.String)">
            <summary>
             Creates an <see cref="T:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail"/> with the specified information.
            </summary>
             <param name="exception">The exception</param>
             <param name="furtherMessage">Any further error messages</param>
             <param name="title">The title</param>
        </member>
        <member name="M:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail.ToString">
            <summary>
            The Exception beign wrapped message plus any FurtherMessage.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail.Exception">
            <summary>
             The Exception
            </summary>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail.FurtherMessage">
            <summary>
             Any further messages for the exception
            </summary>
        </member>
        <member name="P:Habanero.Base.RecordingExceptionNotifier.ExceptionDetail.Title">
            <summary>
             The title for the notification
            </summary>
        </member>
        <member name="P:Habanero.Base.IOrderCriteriaField.PropertyName">
            <summary>
            The name of the property (as defined in the ClassDef) that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.IOrderCriteriaField.FieldName">
            <summary>
            The name of the field in the data source that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.IOrderCriteriaField.Source">
            <summary>
            The name of the source (such as a table name) that this QueryField is from.
            </summary>
        </member>
        <member name="P:Habanero.Base.IOrderCriteriaField.SortDirection">
            <summary>
            The SortDirection option to use when sorting
            </summary>
        </member>
        <member name="P:Habanero.Base.IOrderCriteriaField.FullName">
            <summary>
            Returns the full name of the order criteria - ie "Source.Name"
            </summary>
        </member>
        <member name="T:Habanero.Base.OrderCriteriaField">
            <summary>
            Field represents one field in an OrderCriteria object.  Each OrderCriteriaField has a name and SortDirection.
            </summary>
        </member>
        <member name="F:Habanero.Base.OrderCriteriaField._comparer">
            <summary>
            This is used as a type object because IPropertyComparer inherits from the base generic type 
            IComparer but you cannot set the use T at a field level.
            We wanted to however cache this since it is taking a significant amount of time
            in the loading.
            </summary>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.#ctor(System.String,System.String,Habanero.Base.Source,Habanero.Base.SortDirection)">
            <summary>
            Creates a Field with the given name and SortDirection
            </summary>
            <param name="propertyName">The name of the property to sort on</param>
            <param name="source">The source for the field i.e. the primary object that the field is defined from.</param>
            <param name="sortDirection">The SortDirection option to use when sorting</param>
            <param name="fieldName">The name of the field.</param>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.#ctor(System.String,Habanero.Base.SortDirection)">
            <summary>
            Creates a Field with the given name and SortDirection
            </summary>
            <param name="propertyName">The name of the property to sort on</param>
            <param name="sortDirection">The SortDirection option to use when sorting</param>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.ToString">
            <summary>
            Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.FromString(System.String)">
            <summary>
            Creates a Field object by parsing a string in the correct format.
            The format is:
            <para>&lt;field&gt; => &lt;fieldName&gt; [ ASC | DESC ] </para>
            For example: <code>Age DESC</code> or <code>Surname DESC</code>
            </summary>
            <param name="fieldString">The string in the correct format (see above)</param>
            <returns>A Field created from the string</returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteriaField.Compare``1(``0,``0)">
            <summary>
            Compares two BusinessObjects using this field.
            </summary>
            <typeparam name="T">The Type of objects being compared. This must be a class that implements IBusinessObject</typeparam>
            <param name="bo1">The first object to compare</param>
            <param name="bo2">The object to compare the first with</param>
            <returns>a value less than 0 if bo1 is less than bo2, 0 if bo1 = bo2 and greater than 0 if b01 is greater than bo2
            The value returned is negated if the SortDirection is Descending</returns>
        </member>
        <member name="P:Habanero.Base.OrderCriteriaField.PropertyName">
            <summary>
            The name of the property (as defined in the ClassDef) that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.OrderCriteriaField.FieldName">
            <summary>
            The name of the field in the data source that this QueryField is for
            </summary>
        </member>
        <member name="P:Habanero.Base.OrderCriteriaField.Source">
            <summary>
            The name of the source (such as a table name) that this QueryField is from.
            </summary>
        </member>
        <member name="P:Habanero.Base.OrderCriteriaField.SortDirection">
            <summary>
            The SortDirection option to use when sorting
            </summary>
        </member>
        <member name="P:Habanero.Base.OrderCriteriaField.FullName">
            <summary>
            Returns the full name of the order criteria - ie "Source.Name"
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectLookupList">
            <summary>
            A LookupList that is associated with a particular Business Object type.
            E.g. A Lookup List of all customers. This is therefore associated with 
            a particular ClassDefinition.
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.AssemblyName">
            <summary>
            The assembly containing the class from which values are loaded
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.ClassName">
            <summary>
            The class from which values are loaded
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.Criteria">
            <summary>
            Gets and sets the sql criteria used to limit which objects
            are loaded in the BO collection
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.SortString">
            <summary>
            This raw sort string.  Preferrably use <see cref="P:Habanero.Base.IBusinessObjectLookupList.OrderCriteria"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.CriteriaString">
            <summary>
            This raw criteria string.  Preferrably use <see cref="P:Habanero.Base.IBusinessObjectLookupList.Criteria"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IBusinessObjectLookupList.OrderCriteria">
            <summary>
            Gets and sets the sort string used to sort the lookup
            list.  This string must contain the name of a property
            belonging to the business object used to construct the list.
            The possible formats are: "property", "property asc",
            "property desc" and "property des".
            </summary>
        </member>
        <member name="T:Habanero.Util.Utilities">
            <summary>
             General Utilities
            </summary>
        </member>
        <member name="M:Habanero.Util.Utilities.IsNull(System.Object)">
            <summary>
             This method tests the reference passed in to see if it is null or not.
             It inspects the actual memory location of the object's pointer to see if it is null or not.
             This is useful in the case where you need to test for null without using the == operator.
            </summary>
            <param name="obj">The object to be tested it it is null or not.</param>
            <returns>True if the object is null, or false if not.</returns>
        </member>
        <member name="M:Habanero.Util.Utilities.ToArray``1(System.Collections.IList)">
            <summary>
             Copies the elements of the <see cref="T:System.Collections.IList"/> to a new array of the specified type.
            </summary>
            <param name="list">The <see cref="T:System.Collections.IList"/> to be copied.</param>
            <typeparam name="T">The type of the elemtnes of the array to be returned.</typeparam>
            <returns>An array of type <typeparamref name="T"/> containing copies of the elements of the <see cref="T:System.Collections.IList"/>.</returns>
        </member>
        <member name="T:Habanero.Util.FileUtilities">
            <summary>
            Provides a collection of utilities for strings
            </summary>
        </member>
        <member name="M:Habanero.Util.FileUtilities.StringHasOnlyWhitespaceSinceLastNewline(System.String)">
            <summary>
            Searches for the last occurrence of a newline and indicates whether the
            text after this occurrence is only whitespace characters, tabs or an empty string.
            Returns false if there is no newline.
            </summary>
        </member>
        <member name="M:Habanero.Util.FileUtilities.GetRelativePath(System.String,System.String)">
            <summary>
             Returns the relative path for a an absolute path and a partial path.
            </summary>
            <param name="absolutePath">The Full Path e.g C:\Systems\Habanero\Source\SomeDirectory\</param>
            <param name="relativeTo">The Path that you wan the relative path to e.g. C:\Systems\Habanero\</param>
            <returns>The Relative path e.g. in this case \Source\SomeDirectory\</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String)">
            <summary>
            Create a file in the specified location with the specified contents
            </summary>
            <param name="filePath">The full file path to be created including the file name e.g. C:\Systems\SomeFile.txt</param>
            <param name="fileContents">The contents to be created in the file</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String,System.Boolean)">
            <summary>
            Create a file in the specified location with the specified contents
            </summary>
            <param name="filePath">The full file path to be created e.g. C:\Systems\SomeFile.txt</param>
            <param name="fileContents">The contents to be created in the file</param>
            <param name="overwrite">Overrite an existing file or not</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String,System.String)">
             <summary>
             Create a file in the specified location with the specified contents
             </summary>
            <param name="folderPath">The full folder path that the file must be created in e.g. C:\Systems\</param>
            <param name="fileName">The File name to be created e.g. SomeFile.txt</param>
             <param name="fileContents">The contents to be created in the file</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String,System.String,System.Text.Encoding)">
             <summary>
             Create a file in the specified location with the specified contents
             </summary>
            <param name="folderPath">The full folder path that the file must be created in e.g. C:\Systems\</param>
            <param name="fileName">The File name to be created e.g. SomeFile.txt</param>
             <param name="fileContents">The contents to be created in the file</param>
            <param name="encoding">The encoding to be used when writing this file</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String,System.String,System.Boolean)">
             <summary>
             Create a file in the specified location with the specified contents
             </summary>
            <param name="folderPath">The full folder path that the file must be created in e.g. C:\Systems\</param>
            <param name="fileName">The File name to be created e.g. SomeFile.txt</param>
             <param name="fileContents">The contents to be created in the file</param>
            <param name="overwrite">Whether to overwrite the file or not</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateFile(System.String,System.String,System.String,System.Boolean,System.Text.Encoding)">
             <summary>
             Create a file in the specified location with the specified contents
             </summary>
            <param name="folderPath">The full folder path that the file must be created in e.g. C:\Systems\</param>
            <param name="fileName">The File name to be created e.g. SomeFile.txt</param>
             <param name="fileContents">The contents to be created in the file</param>
            <param name="overwrite">Whether to overwrite the file or not</param>
            <param name="encoding">Encoding to be used</param>
            <returns>Returns the newly created full file name</returns>
        </member>
        <member name="M:Habanero.Util.FileUtilities.CreateDirectory(System.String)">
            <summary>
             If the Directory Does note exists then it creates one else does nothing
            </summary>
            <param name="path">The path of the Directory</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.UnknownTypeNameException">
            <summary>
            Provides an exception to throw when a method receives the name of a class
            as a string to instantiate, but cannot find the type for that class name
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.UnknownTypeNameException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.UnknownTypeNameException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.UnknownTypeNameException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.UnknownTypeNameException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Encryption">
            <summary>
            An enumeration to designate which type of encryption is to be
            carried out.
            </summary>
        </member>
        <member name="F:Habanero.Base.Encryption.None">
            <summary>No encryption or decryption is carried out</summary>
        </member>
        <member name="F:Habanero.Base.Encryption.Blowfish">
            <summary>Encryption and decryption are done using the Blowfish algorithm</summary>
        </member>
        <member name="T:Habanero.Base.IRelKey">
            <summary>
            Holds a collection of properties on which two classes in a relationship
            are matching
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelKey.HasRelatedObject">
            <summary>
            Indicates if there is a related object.
            If all relationship properties are null then it is assumed that 
            there is no related object.
            </summary>
            <returns>Returns true if there is a valid relationship</returns>
        </member>
        <member name="M:Habanero.Base.IRelKey.Contains(System.String)">
            <summary>
            Indicates whether a property with the given name is part of the key
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if a property with this name is held</returns>
        </member>
        <member name="P:Habanero.Base.IRelKey.Count">
            <summary>
             Gets the number of properties in this relationship key.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelKey.Item(System.String)">
            <summary>
            Provides an indexing facility so that the properties can be
            accessed with square brackets like an array
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the RelProp object found with that name</returns>
        </member>
        <member name="P:Habanero.Base.IRelKey.Item(System.Int32)">
            <summary>
            Indexes the array of relprops this relkey contains.
            </summary>
            <param name="index">The position of the relprop to get</param>
            <returns>Returns the RelProp object found with that name</returns>
        </member>
        <member name="P:Habanero.Base.IRelKey.Criteria">
            <summary>
            Returns a copy of the key's Criteria (ie the search string matching this key). 
            </summary>
            <returns>Returns a Criteria object</returns>
        </member>
        <member name="E:Habanero.Base.IRelKey.RelatedPropValueChanged">
            <summary>
            Event raised when the value for one of the Properties (<see cref="T:Habanero.Base.IRelProp"/>) for this <see cref="T:Habanero.Base.IRelKey"/> is changed
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelPropDef">
            <summary>
            This class contains the definition of a property that participates in a relationship between two Classes.
            This class collaborates with the <see cref="T:Habanero.Base.IRelKeyDef"/>, the <see cref="T:Habanero.Base.IClassDef"/> 
              to provide a definition of the properties involved in the <see cref="T:Habanero.Base.IRelationshipDef"/> between 
              two <see cref="T:Habanero.Base.IBusinessObject"/>. This provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            the RelPropdef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelPropDef is used by the RelKeyDef. The RelPropDef (Relationship Property Definition) defines
              the property definition <see cref="T:Habanero.Base.IPropDef"/> from the owner Business object defintion and the Property name that this
              Property Definition is mapped to. A <see cref="T:Habanero.Base.IRelProp"/> is created from this definition for a particular 
              <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelPropDef.OwnerPropertyName">
            <summary>
            Returns the property name for the relationship owner
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelPropDef.RelatedClassPropName">
            <summary>
            The property name to be matched to in the related class
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelPropDef.OwnerPropDef">
            <summary>
            Returns the PropDef of the OwnerClass that this RelPropDef defines.
            </summary>
        </member>
        <member name="T:Habanero.Base.HabaneroStringBuilder">
            <summary>
            Wraps StringBuilder, adding some additional string manipulation
            functions to parse expressions and remove quoted sections from a string.
            Some example scenarios that would need to be resolved would be: <br/>
            companyname = 'henry''s station' and ....<br/>
            companyname = 'brad and partners'<br/>
            companyname = 'peter (pty) ltd'<br/>
            NB: Syntax like companyname = 'henry's station' will result in
            incorrectly parsing of quoted sections, so it is essential that the 
            client of this class parses this to 'henry''s station' prior to 
            using this class.
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.#ctor">
            <summary>
            Constructor to initialise a new builder
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.#ctor(System.String)">
            <summary>
            Constructor to initialise a new builder with an initial string
            </summary>
            <param name="s">The initial string</param>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.SetQuotes(System.String[])">
            <summary>
            Sets the list of quote types to recognise (' and " by default)
            </summary>
            <param name="quotes">The quotes</param>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.RemoveQuotedSections">
            <summary>
            Removes all quoted sections from the string and stores them
            so that they can be replaced later using PutBackQuotedSections()
            </summary>
            <returns>Returns a HabaneroStringBuilder string without quotes</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.PutBackQuotedSections">
            <summary>
            Replaces all stored quoted sections into the string in their 
            original positions (these would have been removed using
            RemoveQuotedSections())
            </summary>
            <returns>Returns a HabaneroStringBuilder object with previously 
            removed quoted sections put back</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.ToString">
            <summary>
            Returns the string being held
            </summary>
            <returns>Returns the string</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.Substring(System.Int32,System.Int32)">
            <summary>
            Returns a sub-string of the string
            </summary>
            <param name="startIndex">The starting index</param>
            <param name="length">The length to return</param>
            <returns>Returns a HabaneroStringBuilder object</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.Substring(System.Int32)">
            <summary>
            Returns a sub-string of the string, beginning at the start index
            </summary>
            <param name="startIndex">The start index to begin from</param>
            <returns>Returns a HabaneroStringBuilder object</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.IndexOf(System.String)">
            <summary>
            Returns the index position of the given string segment
            </summary>
            <param name="value">The string segment to search for</param>
            <returns>Returns the index position if found, or -1</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.IndexOf(System.String,System.Int32)">
            <summary>
            Returns the index position of the given string segment, beginning
            the search at the specified start index point
            </summary>
            <param name="value">The string segment to search for</param>
            <param name="startIndex">The start index point to begin searching 
            from </param>
            <returns>Returns the index position if found, or -1</returns>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.DropOuterQuotes">
            <summary>
            Drops the outer quotes from the string
            </summary>
            <returns>Returns the string after the outer quotes have been
            removed</returns>
        </member>
        <member name="T:Habanero.Base.HabaneroStringBuilder.QuotedSection">
            <summary>
            Manages a quoted section that has been temporarily removed
            </summary>
        </member>
        <member name="M:Habanero.Base.HabaneroStringBuilder.QuotedSection.#ctor(System.Int32,System.String)">
            <summary>
            Constructor to initialise the quoted section
            </summary>
            <param name="pos">The position of the quote</param>
            <param name="quotedSection">The quoted section as a string</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.ReflectionException">
            <summary>
            Provides an exception to throw when the reflection cannot be done
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.ReflectionException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.ReflectionException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.ReflectionException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.ReflectionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidOrderCriteriaException">
            <summary>
            Provides an exception to throw when a property value is invalid
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidOrderCriteriaException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidOrderCriteriaException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidOrderCriteriaException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidOrderCriteriaException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.Exceptions.RecordedExceptionsException">
            <summary>
            Provides an exception to throw when the xml being
            examined is invalid or not well-formed
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.RecordedExceptionsException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.RecordedExceptionsException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.RecordedExceptionsException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.RecordedExceptionsException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.BOPropUpdatedEventArgs">
            <summary>
            Provides <see cref="T:Habanero.Base.IBusinessObject"/> and <see cref="T:Habanero.Base.IBOProp"/> related arguments 
            to an event which is fired when the <see cref="T:Habanero.Base.IBOProp"/> is updated.
            </summary>
        </member>
        <member name="M:Habanero.Base.BOPropUpdatedEventArgs.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new event argument
            with the updated <see cref="T:Habanero.Base.IBOProp"/> and the <see cref="T:Habanero.Base.IBusinessObject"/> to which the prop belongs.
            </summary>
            <param name="businessObject">The <see cref="T:Habanero.Base.IBusinessObject"/> to which the updated <see cref="T:Habanero.Base.IBOProp"/> belongs.</param>
            <param name="prop">The updated <see cref="T:Habanero.Base.IBOProp"/>.</param>
        </member>
        <member name="P:Habanero.Base.BOPropUpdatedEventArgs.Prop">
            <summary>
            Gets the BOProp updated in the event
            </summary>
        </member>
        <member name="P:Habanero.Base.BOPropUpdatedEventArgs.BusinessObject">
            <summary>
             The <see cref="T:Habanero.Base.IBusinessObject"/> to which the updated <see cref="T:Habanero.Base.IBOProp"/> belongs.
            </summary>
        </member>
        <member name="T:Habanero.Base.BOPropUpdatedEventArgs`1">
            <summary>
            Provides arguments to attach for an event involving business objects
            </summary>
        </member>
        <member name="M:Habanero.Base.BOPropUpdatedEventArgs`1.#ctor(`0,Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new set of arguments
            </summary>
            <param name="bo">The related business object</param>
            <param name="prop">the property that updated event is being fired for</param>
        </member>
        <member name="P:Habanero.Base.BOPropUpdatedEventArgs`1.BusinessObject">
            <summary>
            Returns the business object related to the event
            </summary>
        </member>
        <member name="T:Habanero.Base.Util.DateRangeOptionsConverter">
            <summary>
             
            </summary>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.#ctor">
            <summary>
             Constructs A DateRangeOptions Converter with a default DateTimeNow.
            </summary>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.SetNow(System.DateTime)">
            <summary>
            Sets a fixed date time to use as now.
            </summary>
            <param name="now">the Fixed DateTime to use as now in all calculations</param>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.#ctor(Habanero.Base.DateTimeNow)">
            <summary>
             Constructs A DateRangeOptions Converter with a specified DateTimeNow.
             This is primarily used for testing so that a Fake DateTimeNow can be used.
            </summary>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.ConvertDateRange(Habanero.Base.Util.DateRangeOptions)">
            <summary>
             Usign the Current Date Time <see cref="T:Habanero.Base.DateTimeNow"/> and the <see cref="T:Habanero.Base.Util.DateRangeOptions"/>
             returns an appropriate <see cref="T:Habanero.Base.Util.DateRange"/>.
            </summary>
            <param name="dateRangeOptions">A date range option e.g. Yesterday</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.TotalWeekStartOffSet">
            <summary>
            Sum of Midnight offset and WeekStartOffSet
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.Util.DateRangeOptionsConverter.TotalMonthStartOffSet">
            <summary>
            Sum of Midnight offset and MonthStartOffSet
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.Util.DateRangeOptionsConverter.MidnightOffset">
            <summary>
            The offset used to determine the start of the day. E.g. if the day start is assumed to be
            08h00 then this will be set to a timespan of 8 hrs. NNB this means that an event occuring at 7:59 Today will be seen as Yesterday
            </summary>
        </member>
        <member name="P:Habanero.Base.Util.DateRangeOptionsConverter.WeekStartOffset">
            <summary>
            An off set for the week start. By Defaut the week start is Sunday Morning. But for certain applications
            you may require a week start on Monday. You Should then set the WeekStartOffSet to 1.
            </summary>
        </member>
        <member name="P:Habanero.Base.Util.DateRangeOptionsConverter.MonthStartOffset">
            <summary>
            Gets and sets the number of days to add or subtract from
            the first day of the month in order to adjust which day
            is typically the first of the month.  If the 5th is the typical start
            of a new month for the given application,
            then this property can be set to 4 (1+4=5).
            </summary>
        </member>
        <member name="P:Habanero.Base.Util.DateRangeOptionsConverter.YearStartOffset">
            <summary>
            Gets and sets the number of months to add or subtract from
            January to redefine the first month of the year.  For example,
            if March is the first month of the new year for the given application,
            then this property can be set with 2 (1+2=3).
            </summary>
        </member>
        <member name="T:Habanero.Base.Util.DateRangeOptions">
            <summary>
            Provides options that can be added to or removed from the
            DateRangeComboBox
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.ThisHour">
            <summary>
            The period from the start of this hour until End of this hour
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.PreviousHour">
            <summary>
            The period covering the previous hour before the start of the
            current one
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Current60Minutes">
            <summary>
            The period covering the previous 60 minutes before this one
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Today">
            <summary>
            The period from the start of the day until end of Today
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Yesterday">
            <summary>
            The period from the start of the previous day till
            the end of the previous day
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Current24Hours">
            <summary>
            The period covering the last 24 hours up till now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.WeekToDate">
            <summary>
            The period from the first day of the week until now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.PreviousWeek">
            <summary>
            The period from the first day of the previous week
            until the last day of the previous week
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous7Days">
            <summary>
            The previous seven days, excluding today
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.MonthToDate">
            <summary>
            The period from the start of the month until now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.PreviousMonth">
            <summary>
            The period covering the previous month
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous30Days">
            <summary>
            The period covering the previous 30 days, excluding today
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous31Days">
            <summary>
            The period covering the previous 31 days, excluding today
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.YearToDate">
            <summary>
            The period covering the start of the year until now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.ThisYear">
            <summary>
            The period covering the current year (Jan 1 to Dec 31)
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.PreviousYear">
            <summary>
            The period covering the previous year
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous365Days">
            <summary>
            The period covering the last 365 days, excluding today
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Current2Years">
            <summary>
            The period covering the 2 years up till now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Current3Years">
            <summary>
            The period covering the 3 years up till now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Current5Years">
            <summary>
            The period covering the 5 years up till now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous2Years">
            <summary>
            The period covering the 2 years before the current one
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous3Years">
            <summary>
            The period covering the 3 years before the current one
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Previous5Years">
            <summary>
            The period covering the 5 years before the current one
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Tommorrow">
            <summary>
            The period from the start of the next day till
            the end of the next day
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Next24Hours">
            <summary>
            The period covering the next 24 hours from now
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.ThisWeek">
            <summary>
            The period from the first day of the week until the last day of the week. (Week Starts on Sunday 00:00:00)
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Next7Days">
            <summary>
            The period from the first day of the next week
            until the last day of the next week. (Week Starts on Sunday 00:00:00)
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.ThisMonth">
            <summary>
            The period from the start of this month until end of this month.
            </summary>
        </member>
        <member name="F:Habanero.Base.Util.DateRangeOptions.Next30Days">
            <summary>
            The period covering the next 30 days, including today
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIDefCol">
            <summary>
            Manages a collection of user interface definitions
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.#ctor">
            <summary>
            Constructor to initialise a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Add(Habanero.Base.IUIDef)">
            <summary>
            Adds a UI definition to the collection
            </summary>
            <param name="def">The UI definition to add</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Contains(Habanero.Base.IUIDef)">
            <summary>
            Indicates whether the given ui definition is contained in the
            collection
            </summary>
            <param name="def">The ui definition</param>
            <returns>Returns true if contained</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Contains(System.String)">
            <summary>
            Indicates whether a ui definition with the given name is contained in the
            collection
            </summary>
            <param name="uiDefName">The ui definition name</param>
            <returns>Returns true if contained</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Remove(Habanero.Base.IUIDef)">
            <summary>
            Removes the specified ui definition from the collection
            </summary>
            <param name="def">The ui definition to remove</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Clone">
            <summary>
             Clones the uidefcol.  The new ui defCol will have a clone of each UIGrid and UIForm.
              i.e. this is a deep copy of the uiDefCol
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.GetHashCode">
            <summary>
            Hashcode for the UIDefCol is the sum of the hashcodes of the UIDefs it contains
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.op_Equality(Habanero.BO.ClassDefinition.UIDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
             overloads the operator == 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.op_Inequality(Habanero.BO.ClassDefinition.UIDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
             overloads the operator != 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.System#Collections#Generic#IEnumerable{Habanero#Base#IUIDef}#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDefCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns the collection's enumerator
            </summary>
            <returns>Returns an object of type IEnumerator</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility so that the contents of the
            collection can be accessed with square brackets like an array
            </summary>
            <param name="name">The name of the definition to access</param>
            <returns>Returns the definition with the name specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDefCol.Count">
            <summary>
            Returns a count of the number of ui definitions held
            in this collection
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDefCol.ClassDef">
            <summary>
             Returns the class definition for the UIDefCol.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDefCol.ClassName">
            <summary>
            Returns the ClassName of the Class tha this UIDef is for.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.LayoutStyle">
            <summary>
             The layout style for the UIForm Field <see cref="F:Habanero.BO.ClassDefinition.LayoutStyle.Label"/> and <see cref="F:Habanero.BO.ClassDefinition.LayoutStyle.GroupBox"/>
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.LayoutStyle.Label">
            <summary>
             The label should be to the left of the control.
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.LayoutStyle.GroupBox">
            <summary>
             The label will be shown in the group box around the control
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidPropertyException">
            <summary>
            Provides an exception to throw when a property is invalid
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.CriteriaExpression">
            <summary>
            This class is a binary tree that consists of a left expression, a right expression
              and a join expression.
            The criteria Exrpession can be created by parsing a criteria string.
            </summary>
        </member>
        <member name="M:Habanero.Base.CriteriaExpression.#ctor(System.String)">
            <summary>
            A constructor that takes a given expression string and parses it
            into a linked list of expressions
            </summary>
            <param name="expression">The expression string to parse</param>
        </member>
        <member name="M:Habanero.Base.CriteriaExpression.#ctor(System.String,System.String[])">
            <summary>
            A constructor as before, but allows a particular set of
            operators to be specified, unlike the default set usually used.
            </summary>
            <param name="expression"></param>
            <param name="operators">The set of operators</param>
        </member>
        <member name="M:Habanero.Base.CriteriaExpression.parseExpression(Habanero.Base.HabaneroStringBuilder)">
            <summary>
            Parses the expression into a linked list of expression objects
            </summary>
            <param name="expression">The expression to parse</param>
        </member>
        <member name="M:Habanero.Base.CriteriaExpression.IsPosInsideBrackets(System.String,System.Int32)">
            <summary>
            Checks whether the given position in a string is between opening
            and closing brackets
            </summary>
            <param name="quote">The string in question</param>
            <param name="pos">The position in the string</param>
            <returns>Returns true if between brackets, false if not</returns>
        </member>
        <member name="M:Habanero.Base.CriteriaExpression.IsLeaf">
            <summary>
            Indicates whether this object contains the full expression
            </summary>
            <returns>Returns true if this is the full expression, or false if 
            there are other parts of the expression to the left or right</returns>
        </member>
        <member name="P:Habanero.Base.CriteriaExpression.Left">
            <summary>
            Gets or sets a part of the full expression that may be to the left of this
            one, if you picture all the parts being laid out in a line.
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaExpression.Right">
            <summary>
            Gets or sets a part of the full expression that may be to the right of this
            one, if you picture all the parts being laid out in a line
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaExpression.Expression">
            <summary>
            Gets the part of the expression held in this object
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaExpression.CompleteExpression">
            <summary>
            Gets the full expression by concatenating any parts that
            may be to the left or right of this expression with the part
            of the expression this object holds
            </summary>
        </member>
        <member name="T:Habanero.Base.IDatabaseConnectionFactory">
            <summary>An interface describing a class that creates <see cref="T:Habanero.Base.IDatabaseConnection"/> objects.
            </summary>
        </member>
        <member name="M:Habanero.Base.IDatabaseConnectionFactory.CreateConnection(Habanero.Base.IDatabaseConfig)">
            <summary>   
            Creates a new database connection with the configuration
            provided
            </summary>
            <param name="config">The database access configuration</param>
            <returns>Returns a new database connection</returns>
        </member>
        <member name="T:Habanero.Base.CoverageExcludeAttribute">
            <summary>
            Code with this attribute will be excluded from Test Coverage Reports.
            </summary>
        </member>
        <member name="P:Habanero.Base.CoverageExcludeAttribute.ExcludeReason">
            <summary>
            The Reason that this code is excluded from Test Converage
            </summary>
        </member>
        <member name="T:Habanero.Util.SerialisationUtilities">
            <summary>
            Provides serialisation utilities
            </summary>
        </member>
        <member name="M:Habanero.Util.SerialisationUtilities.ObjectToByteArray(System.Object)">
            <summary>
            Converts an Object to a byte array
            </summary>
            <param name="obj">The Object to convert</param>
            <returns>Returns a byte array</returns>
        </member>
        <member name="M:Habanero.Util.SerialisationUtilities.ByteArrayToObject(System.Byte[])">
            <summary>
            Converts a byte array to an Object
            </summary>
            <param name="arrBytes">The byte array to convert</param>
            <returns>Returns an Object</returns>
        </member>
        <member name="M:Habanero.Util.SerialisationUtilities.ReadFully(System.IO.Stream,System.Int32)">
            <summary>
            Reads data from a stream until the end is reached. The
            data is returned as a byte array.
            </summary>
            <param name="stream">The stream to read data from</param>
            <param name="initialLength">The initial buffer length</param>
            <exception cref="T:System.IO.IOException">Thrown if any of the underlying 
            IO calls fail</exception>
        </member>
        <member name="T:Habanero.Base.Util.DateRange">
            <summary>
            Date Range Class originally from http://noticeablydifferent.com/CodeSamples/DateRange.aspx
            </summary>
        </member>
        <member name="M:Habanero.Base.Util.DateRange.#ctor">
            <summary>
            Constructs range with StartDate - DateTime.Min and EndDate DateTime.Max.
            </summary>
        </member>
        <member name="M:Habanero.Base.Util.DateRange.#ctor(System.DateTime,System.DateTime)">
            <summary>
            Constructs DateRange with specified start and end date.
            </summary>
            <param name="startDate"></param>
            <param name="endDate"></param>
        </member>
        <member name="M:Habanero.Base.Util.DateRange.Equals(Habanero.Base.Util.DateRange)">
            <summary>
            Returns true if the two date ranges have exactly the same start and end date.
            </summary>
            <param name="other"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.Util.DateRange.TimeSpan">
            <summary>
             The Timespan between StartDate and End Date.
            </summary>
        </member>
        <member name="P:Habanero.Base.Util.DateRange.StartDate">
            <summary>
            The Start date of the Date Range.
            </summary>
        </member>
        <member name="P:Habanero.Base.Util.DateRange.EndDate">
            <summary>
            The End Date of the Date Range.
            </summary>
        </member>
        <member name="T:Habanero.Base.Util.DateRangeComparerByStartDate">
            <summary>
            Date Range Class originally from http://noticeablydifferent.com/CodeSamples/DateRange.aspx
            </summary>
        </member>
        <member name="T:Habanero.Util.ByteString">
            <summary>
            Manages a long string that, when stored in the database, will need 
            to be stored as a byte array.
            In MySql this type is usually reflected by the data type 'blob'.
            In SqlServer this type is usually reflected by the data type 'blob'.
            In Oracle this type is usually reflected by the data type 'blob'.
            In Access this type is usually reflected by the data type 'OLE Object'.
            </summary>
        </member>
        <member name="M:Habanero.Util.ByteString.#ctor(System.String)">
            <summary>
             Constructor to initialise a new long text string
            </summary>
            <param name="value">The ByteString string data</param>
        </member>
        <member name="M:Habanero.Util.ByteString.#ctor(System.Object,System.Boolean)">
            <summary>
            Constructor to initialise a new Byte String from the database or not
            </summary>
            <param name="value">The Byte or String data</param>
            <param name="isLoading">Is this value being loaded from the database</param>
        </member>
        <member name="M:Habanero.Util.ByteString.GetHashCode">
            <summary>
            Returns the hashcode of the Byte string
            </summary>
            <returns>Returns a hashcode integer</returns>
        </member>
        <member name="M:Habanero.Util.ByteString.Equals(System.Object)">
            <summary>
            Indicates whether the contents of the given ByteString object
            equal the contents of this object
            </summary>
            <param name="obj">The ByteString object to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.Util.ByteString.ToString">
            <summary>
            Returns the text string
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Util.ByteString.GetPersistValue">
            <summary>
            Returns the value that is to be persisted to the database.
            </summary>
            <returns>Returns the byte array value</returns>
        </member>
        <member name="P:Habanero.Util.ByteString.Value">
            <summary>
            Returns the value of the string
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIGridColumn">
            <summary>
            Interface describing a column of a grid.  This is implemented by UIGridColumn.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGridColumn.GetHeading">
            <summary>
             Gets the heading for this grid column.
            </summary>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGridColumn.GetHeading(Habanero.Base.IClassDef)">
            <summary>
             Gets the heading for this grid column given a classDef.
            </summary>
            <param name="classDef">The class definition that corresponds to this grid column. </param>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGridColumn.GetParameterValue(System.String)">
            <summary>
            Returns the parameter value for the name provided
            </summary>
            <param name="parameterName">The parameter name</param>
            <returns>Returns the parameter value or null if not found</returns>
            TODO this should return a string
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IUIGridColumn.GetPropertyType">
            <summary>
             Gets the heading for this grid column.
            </summary>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.Heading">
            <summary>
            Returns the heading text that will be used for this column.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.PropertyName">
            <summary>
            Returns the property name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.Editable">
            <summary>
            Indicates whether the column is editable
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.Width">
            <summary>
            Returns the width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.Alignment">
            <summary>
            Returns the horizontal alignment
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.Parameters">
            <summary>
            Returns the Hashtable containing the property parameters
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.GridControlTypeName">
            <summary>
            Gets and sets the name of the grid control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.GridControlAssemblyName">
            <summary>
            Gets and sets the assembly name of the grid control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.UIGrid">
            <summary>
             The <see cref="T:Habanero.BO.ClassDefinition.IUIGrid">Grid Definition</see> that this IUIGridColumn belongs to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.ClassDef">
            <summary>
             The <see cref="T:Habanero.Base.IClassDef">ClassDefinition</see> that this IUIGridColumn belongs to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.LookupList">
            <summary>
            Returns the LookupList for the PropDef that 
            is associated with this PropDef.
            If there is no PropDef associated with this column
            then returns NullLookupList.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.PropDef">
            <summary>
            Returns the PropDef associated with this UIGridColumn. If there is one
            If this GridColumn is for a reflective Prop then returns null.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIGridColumn.HasPropDef">
            <summary>
            Return true if this UIGridColumn is associated with a <see cref="T:Habanero.Base.IPropDef"/>.
            This is used since a GridColumn can be associated with
            Reflective Property 
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelationship">
            <summary>
             The interface used to implement relationships between two classes.
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelationship.IsDeletable(System.String@)">
            <summary>
            Is there anything in this relationship to prevent the business object from being deleted.
            e.g. if there are related business objects that are not marked as mark for delete.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IRelationship.MarkForDelete">
            <summary>
            If the relationship is <see cref="P:Habanero.Base.IRelationship.DeleteParentAction"/>.DeleteRelated then
            all the related objects and their relevant children will be marked for Delete.
            See <see cref="M:Habanero.Base.IBusinessObject.MarkForDelete"/>
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.RelKey">
            <summary>
             The key that identifies this relationship i.e. the properties in the 
             source object and how they are related to properties in the related object.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.RelatedObjectClassDef">
            <summary>
            The class Definition for the related object.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.RelationshipDef">
            <summary>
            Returns the relationship definition
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.RelationshipName">
            <summary>
            Returns the relationship name
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.Initialised">
            <summary>
             Returns true if the Relationship is initialised or not.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.DeleteParentAction">
            <summary>
             Returns the appropriate delete action when the parent is deleted.
             i.e. delete related objects, dereference related objects, prevent deletion.
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelationship.OwningBO">
            <summary>
             Returns the business object that owns this relationship e.g. Invoice has many lines
             the owning BO would be invoice.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidRelationshipNameException">
            <summary>
            Provides an exception to throw when a relationship value is invalid
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipNameException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipNameException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipNameException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidRelationshipNameException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.IFilterPropertyDef">
            <summary>
            Interface defining a filter property definition - i.e. a filter field, what property it is filtering on, 
            what <see cref="P:Habanero.Base.IFilterPropertyDef.FilterType"/> to use.  This is implemented by <see cref="T:Habanero.Base.IFilterPropertyDef"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.PropertyName">
            <summary>
            The name of the property this filter applies to.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.Label">
            <summary>
            The text to use to label the filter control.  This shows up as a label to the left of the control.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.FilterType">
            <summary>
            The type of filter to use.  This type must implement ICustomFilter.  The default is StringTextBoxFilter
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.FilterTypeAssembly">
            <summary>
            The assembly to find the filter class in.  The default is Habanero.UI.Base
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.FilterClauseOperator">
            <summary>
            The operator to use in this filter, for those filters that allow the use of different operators.
            </summary>
        </member>
        <member name="P:Habanero.Base.IFilterPropertyDef.Parameters">
            <summary>
            A set of parameters to apply to the instantiated filter.  These are applied using reflection.  For instance, if
            a parameter is specified in this dictionary called 'AllowNull' with a value of 'true', then once the filter
            (which must be of type ICustomFilter) is 
            instantiated , the AllowNull property will be set with a value of true via
            reflection.
            </summary>
        </member>
        <member name="T:Habanero.Base.IParameterNameGenerator">
            <summary>
            An interface to model a generator for parameter names for 
            parameterised sql statements
            </summary>
        </member>
        <member name="M:Habanero.Base.IParameterNameGenerator.GetNextParameterName">
            <summary>
            Generates a parameter name with the current seed value
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.Base.IParameterNameGenerator.Reset">
            <summary>
            Sets the parameter count back to zero
            </summary>
        </member>
        <member name="P:Habanero.Base.IParameterNameGenerator.PrefixCharacter">
            <summary>
            The prefix character used. For example, setting this to "?" will make parameters called "?Param0", "?Param1" etc.
            </summary>
        </member>
        <member name="T:Habanero.Base.PostObjectEditDelegate">
            <summary>
             Delegator definition to be used by the Interface IBusinessObjectEditor for 
             running a post save (persist) delegate on the busines object
             This is needed by Webgui where the pop up edit forms are running out of thread to the
             rest of the application.
            </summary>
            <param name="bo"></param>
            <param name="cancelled"></param>
        </member>
        <member name="T:Habanero.Base.PostObjectEditDelegate`1">
            <summary>
             Delegator definition to be used by the Interface IBusinessObjectEditor for 
             running a post save (persist) delegate on the busines object
             This is needed by Webgui where the pop up edit forms are running out of thread to the
             rest of the application.
            </summary>
            <param name="bo">The business object being edited</param>
            <param name="cancelled">Whether the Edits where cancelled or not</param>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectEditor`1">
            <summary>
            Provides a facility to edit business objects of a specific type
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectEditor`1.EditObject(`0,System.String)">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectEditor`1.EditObject(`0,System.String,Habanero.Base.PostObjectEditDelegate{`0})">
            <summary>
            Edits the given object
            </summary>
            <param name="obj">The object to edit</param>
            <param name="uiDefName">The name of the set of ui definitions
            used to design the edit form. Setting this to an empty string
            will use a ui definition with no name attribute specified.</param>
            <param name="postEditAction">Action to be performed when the editing is completed or cancelled. Typically used if you want to update
            a grid or a list in an asynchronous environment (E.g. to select the recently edited item in the grid)</param>
            <returns>Returs true if edited successfully of false if the edits
            were cancelled</returns>
        </member>
        <member name="T:Habanero.Base.IFilterClauseFactory">
            <summary>
            An interface to model a class that creates filter clauses that determine
            which rows of data are displayed
            </summary>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateStringFilterClause(System.String,Habanero.Base.FilterClauseOperator,System.String)">
            <summary>
            Creates a new filter clause that filters string values
            </summary>
            <param name="columnName">The column of data on which to do the
            filtering</param>
            <param name="clauseOperator">The clause operator</param>
            <param name="filterValue">The filter value to be compared to</param>
            <returns>Returns the new filter clause object</returns>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateIntegerFilterClause(System.String,Habanero.Base.FilterClauseOperator,System.Int32)">
            <summary>
            Creates a new filter clause that filters integer values
            </summary>
            <param name="columnName">The column of data on which to do the
            filtering</param>
            <param name="clauseOperator">The clause operator</param>
            <param name="filterValue">The filter value to be compared to</param>
            <returns>Returns the new filter clause object</returns>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateDateFilterClause(System.String,Habanero.Base.FilterClauseOperator,System.DateTime)">
            <summary>
            Creates a new filter clause that filters date values
            </summary>
            <param name="columnName">The column of data on which to do the
            filtering</param>
            <param name="clauseOperator">The clause operator</param>
            <param name="filterValue">The filter value to be compared to</param>
            <returns>Returns the new filter clause object</returns>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateCompositeFilterClause(Habanero.Base.IFilterClause,Habanero.Base.FilterClauseCompositeOperator,Habanero.Base.IFilterClause)">
            <summary>
            Creates a new composite filter clause combining two given filter
            clauses the operator provided
            </summary>
            <param name="leftClause">The left filter clause</param>
            <param name="compositeOperator">The composite operator, such as
            "and" or "or"</param>
            <param name="rightClause">The right filter clause</param>
            <returns>Returns the new filter clause object</returns>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateNullFilterClause">
            <summary>
            Creates a new null filter clause, which does no filtering
            </summary>
        </member>
        <member name="M:Habanero.Base.IFilterClauseFactory.CreateEnumFilterClause(System.String,Habanero.Base.FilterClauseOperator,System.Object)">
            <summary>
             Creates an Filter Clause for an enum data Type.
            </summary>
            <param name="columnName"></param>
            <param name="clauseOperator"></param>
            <param name="enumValue"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.Base.IOrderCriteria">
            <summary>
            Represents a set of order criteria used when loading collections of BusinessObjects.
            </summary>
        </member>
        <member name="M:Habanero.Base.IOrderCriteria.Add(System.String)">
            <summary>
            Add a field to the fields to be sorted on. This is a convenience method that will created a Field and add it
            to the Fields list with the Ascending option.
            </summary>
            <param name="field">The name of the field to be sorted on</param>
            <returns>This OrderCriteria, to allow chaining of adds (eg:  myOrderCriteria.Add("Name").Add("Age"))</returns>
        </member>
        <member name="M:Habanero.Base.IOrderCriteria.Add(System.String,Habanero.Base.SortDirection)">
            <summary>
            Add a field to the fields to be sorted on. This is a convenience method that will created a Field and add it
            to the Fields list. </summary>
            <param name="field">The name of the field to be sorted on</param>
            <param name="sortDirection">The sort direction of this field</param>
            <returns>This OrderCriteria, to allow chaining of adds</returns>
        </member>
        <member name="M:Habanero.Base.IOrderCriteria.Add(Habanero.Base.IOrderCriteriaField)">
            <summary>
            Adds a field to the fields to be sorted on.
            </summary>
            <param name="orderCriteriaField">The <see cref="T:Habanero.Base.OrderCriteriaField"/> to add to the OrderCriteria's field collection</param>
            <returns>This OrderCriteria, to allow chaining of adds</returns>
        </member>
        <member name="M:Habanero.Base.IOrderCriteria.Compare``1(``0,``0)">
            <summary>
            Compares two BusinessObjects using the criteria set up in this OrderCriteria object.
            </summary>
            <typeparam name="T">The Type to be compared</typeparam>
            <param name="bo1">The first object to be used in the comparison</param>
            <param name="bo2">The second object to be used in the comparison</param>
            <returns>a value less than 0 if bo1 is less than bo2, 0 if bo1 = bo2 and greater than 0 if b01 is greater than bo2
            The value returned is negated if the SortDirection is Descending
            </returns>
        </member>
        <member name="M:Habanero.Base.IOrderCriteria.FromString(System.String)">
            <summary>
            Creates an OrderCriteria object by parsing a string in the correct format.
            The format is:
            <para>&lt;orderCriteria&gt; => &lt;emptystring&gt; | &lt;field&gt; [, &lt;field&gt;, ... ] <br/>
            &lt;field&gt; => &lt;fieldName&gt; [ ASC | DESC ] </para>
            For example: <code>Surname, Age DESC</code> or <code>Age ASC, Surname DESC</code>
            </summary>
            <param name="orderCriteriaString">The string in the correct format (see above)</param>
            <returns>An OrderCriteria created from the string</returns>
        </member>
        <member name="P:Habanero.Base.IOrderCriteria.Fields">
            <summary>
            The fields that will be ordered on. See <see cref="T:Habanero.Base.IOrderCriteriaField"/>
            </summary>
        </member>
        <member name="T:Habanero.Base.SortDirection">
            <summary>
            Defines different sort direction options - the only ones being Ascending or Descending
            </summary>
        </member>
        <member name="F:Habanero.Base.SortDirection.Ascending">
            <summary>
            Sort in ascending order (lowest to highest, a to z)
            </summary>
        </member>
        <member name="F:Habanero.Base.SortDirection.Descending">
            <summary>
            Sort in descending order (highest to lowest, z to a)
            </summary>
        </member>
        <member name="T:Habanero.Base.OrderCriteria">
            <summary>
            Represents a set of order criteria used when loading collections of BusinessObjects.
            </summary>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.Add(System.String)">
            <summary>
            Add a field to the fields to be sorted on. This is a convenience method that will created a Field and add it
            to the Fields list with the Ascending option.
            </summary>
            <param name="field">The name of the field to be sorted on</param>
            <returns>This OrderCriteria, to allow chaining of adds (eg:  myOrderCriteria.Add("Name").Add("Age"))</returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.Add(System.String,Habanero.Base.SortDirection)">
            <summary>
            Add a field to the fields to be sorted on. This is a convenience method that will created a Field and add it
            to the Fields list. </summary>
            <param name="field">The name of the field to be sorted on</param>
            <param name="sortDirection">The sort direction of this field</param>
            <returns>This OrderCriteria, to allow chaining of adds</returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.Add(Habanero.Base.IOrderCriteriaField)">
            <summary>
            Adds a field to the fields to be sorted on.
            </summary>
            <param name="orderCriteriaField">The <see cref="T:Habanero.Base.OrderCriteriaField"/> to add to the OrderCriteria's field collection</param>
            <returns>This OrderCriteria, to allow chaining of adds</returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.Compare``1(``0,``0)">
            <summary>
            Compares two BusinessObjects using the criteria set up in this OrderCriteria object.
            </summary>
            <typeparam name="T">The Type to be compared</typeparam>
            <param name="bo1">The first object to be used in the comparison</param>
            <param name="bo2">The second object to be used in the comparison</param>
            <returns>a value less than 0 if bo1 is less than bo2, 0 if bo1 = bo2 and greater than 0 if b01 is greater than bo2
            The value returned is negated if the SortDirection is Descending
            </returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.ToString">
            <summary>
            Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.FromString(System.String)">
            <summary>
            Creates an OrderCriteria object by parsing a string in the correct format.
            The format is:
            <para>&lt;orderCriteria&gt; => &lt;emptystring&gt; | &lt;field&gt; [, &lt;field&gt;, ... ] <br/>
            &lt;field&gt; => &lt;fieldName&gt; [ ASC | DESC ] </para>
            For example: <code>Surname, Age DESC</code> or <code>Age ASC, Surname DESC</code>
            </summary>
            <param name="orderCriteriaString">The string in the correct format (see above)</param>
            <returns>An OrderCriteria created from the string</returns>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.OrderCriteria.System#Collections#IComparer#Compare(System.Object,System.Object)">
            <summary>
            Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
            </summary>
            
            <returns>
            Value Condition Less than zero x is less than y. Zero x equals y. Greater than zero x is greater than y. 
            </returns>
            
            <param name="y">The second object to compare. </param>
            <param name="x">The first object to compare. </param>
            <exception cref="T:System.ArgumentException">Neither x nor y implements the <see cref="T:System.IComparable"></see> interface.-or- x and y are of different types and neither one can handle comparisons with the other. </exception><filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.Base.OrderCriteria.Fields">
            <summary>
            The fields that will be ordered on. See <see cref="T:Habanero.Base.OrderCriteriaField"/>
            </summary>
        </member>
        <member name="T:Habanero.Base.ISuperClassDef">
            <summary>
            Definition of the inheritance Relationship between a SubClass and a its SuperClass
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.ORMapping">
            <summary>
            Returns the type of ORMapping used.  See the ORMapping
            enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.AssemblyName">
            <summary>
             The assembly name of the SuperClass
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.ClassName">
            <summary>
             The class name of the SuperClass
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.TypeParameter">
            <summary>
            The type parameter of the SuperClass. See <see cref="P:Habanero.Base.IClassDef.TypeParameter"/>.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.Discriminator">
            <summary>
            Returns the name of the discriminator column used to determine which class is being
            referred to in a row of the database table.
            This property applies only to SingleTableInheritance.
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.SuperClassClassDef">
            <summary>
            Returns the class definition for this super-class
            </summary>
        </member>
        <member name="P:Habanero.Base.ISuperClassDef.ID">
            <summary>
            Returns the name of the property that identifies which field
            in the child class (containing the super class definition)
            contains a copy of the parent's ID.  An empty string implies
            that the parent's ID is simply inherited and is used as the
            child's ID.  This property applies only to ClassTableInheritance.
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelProp">
            <summary>
            Represents the property on which two objects match up in a relationship
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelProp.OwnerPropertyName">
            <summary>
            Returns the property name of the relationship owner
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelProp.RelatedClassPropName">
            <summary>
            Returns the property name of the related object
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelProp.BOProp">
            <summary>
            The BoProp this RelProp requires to generate its search expression
            </summary>
        </member>
        <member name="P:Habanero.Base.IRelProp.IsNull">
            <summary>
            Indicates if the property is null
            </summary>
        </member>
        <member name="E:Habanero.Base.IRelProp.PropValueUpdated">
            <summary>
            The event that is raised when the <see cref="P:Habanero.Base.IRelProp.BOProp"/>'s value is changed
            </summary>
        </member>
        <member name="T:Habanero.Base.IRelationshipCol">
            <summary>
            An interface to model a collection of relationships between
            business objects
            </summary>
        </member>
        <member name="M:Habanero.Base.IRelationshipCol.GetRelatedObject(System.String)">
            <summary>
            Returns the business object that is related to this object
            through the specified relationship (eg. would return a father
            if the relationship was called "father").  This method is to be
            used in the case of single relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a multiple relationship, when a
            single one was expected</exception>
        </member>
        <member name="M:Habanero.Base.IRelationshipCol.GetRelatedObject``1(System.String)">
            <summary>
            Returns the business object that is related to this object
            through the specified relationship (eg. would return a father
            if the relationship was called "father").  This method is to be
            used in the case of single relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a multiple relationship, when a
            single one was expected</exception>
        </member>
        <member name="M:Habanero.Base.IRelationshipCol.GetRelatedCollection(System.String)">
            <summary>
            Returns a collection of business objects that are connected to
            this object through the specified relationship (eg. would return
            a father and a mother if the relationship was "parents").  This
            method is to be used in the case of multiple relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object collection</returns>
        </member>
        <member name="M:Habanero.Base.IRelationshipCol.SetRelatedObject(System.String,Habanero.Base.IBusinessObject)">
            <summary>
            Relates a business object to this object through the type of
            relationship specified (eg. could add a new child through a
            relationship called "children")
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <param name="parentObject">The object to relate to</param>
        </member>
        <member name="M:Habanero.Base.IRelationshipCol.Contains(System.String)">
            <summary>
             Determines whether the Relationship Collections contains the specified Relationship
            </summary>
            <param name="relationshipName">The name of the relationship to search for</param>
            <returns></returns>
        </member>
        <member name="P:Habanero.Base.IRelationshipCol.Item(System.String)">
            <summary>
            Searches the relationship col for the relationship with the given name
            </summary>
            <param name="name">The relationship name</param>
            <returns>The Relationship object</returns>
        </member>
        <member name="P:Habanero.Base.IRelationshipCol.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="T:Habanero.Base.IApplicationVersionUpgrader">
            <summary>
            An interface to model a version upgrade tool for an application.
            One common use of this interface is to provide a database update by
            using DBMigrator in the Upgrade() method.
            </summary>
        </member>
        <member name="M:Habanero.Base.IApplicationVersionUpgrader.Upgrade">
            <summary>
            Upgrades the application to the latest version
            </summary>
        </member>
        <member name="T:Habanero.Base.XmlWrapper">
            <summary>
            This class is used to retrieve and update data in an XML document.
            It serves as a wrapper for common functionality used by the report 
            definition classes, but is in no way specific to these classes.
            </summary>
        </member>
        <member name="M:Habanero.Base.XmlWrapper.#ctor(System.Xml.XmlDocument)">
            <summary>
            Constructor that initialises the new object with an XML document
            that has already been instantiated as a System.Xml.XmlDocument
            object.
            </summary>
            <param name="doc">The xml document object to wrap</param>
        </member>
        <member name="M:Habanero.Base.XmlWrapper.#ctor(System.String)">
            <summary>
            Constructor that initialises the new object using a specified
            XML file path
            </summary>
            <param name="xmlFilename">The path to the XML file to wrap</param>
        </member>
        <member name="M:Habanero.Base.XmlWrapper.ReadXmlValue(System.Xml.XPath.IXPathNavigable,System.String)">
            <summary>
            Returns the value from the node that matches the parent node and
            element name parameters provided.
            </summary>
            <param name="parentNode">The parent node object</param>
            <param name="elementName">The element name</param>
            <returns>Returns the value if found or an empty string if not</returns>
        </member>
        <member name="M:Habanero.Base.XmlWrapper.WriteXmlValue(System.Xml.XPath.IXPathNavigable,System.String,System.String)">
            <summary>
            Writes the given value to the xml node found using the
            arguments provided.  If the element specified does not exist,
            a new one will be created.
            </summary>
            <param name="parentNode">The parent of the node to be edited</param>
            <param name="elementName">The element name for the value</param>
            <param name="newValue">The new value to be applied</param>
        </member>
        <member name="M:Habanero.Base.XmlWrapper.WriteXmlDocToFile">
            <summary>
            Updates the XML document file with changes made to the XML
            structure.<br/>
            NOTE_: This method will only execute if the object was originally
            created with the constructor that specifies a _filename.  Alternatively,
            use the variant of this method that takes a file name as a parameter.
            </summary>
            TODO: No testing has been done on this
        </member>
        <member name="M:Habanero.Base.XmlWrapper.WriteXmlDocToFile(System.String)">
            <summary>
            Updates the specified XML document file with changes made to the XML
            structure.
            </summary>
            <param name="filename">The name and path of the file to be updated</param>
            TODO: No testing has been done on this
        </member>
        <member name="P:Habanero.Base.XmlWrapper.XmlDocument">
            <summary>
            The XmlDocument object that is being wrapped
            </summary>
        </member>
        <member name="T:Habanero.Util.SortedStringCollection">
            <summary>
            Manages a collection of strings that is always alphabetically sorted
            </summary>
        </member>
        <member name="M:Habanero.Util.SortedStringCollection.#ctor">
            <summary>
            Constructor to initialise a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.Util.SortedStringCollection.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the collection to an Array, 
            starting at a particular Array index
            </summary>
            <param name="array">The array to copy to</param>
            <param name="index">The zero-based index position to start
            copying from</param>
        </member>
        <member name="M:Habanero.Util.SortedStringCollection.GetEnumerator">
            <summary>
            Returns the collection's enumerator
            </summary>
            <returns>Returns an IEnumerator-type object</returns>
        </member>
        <member name="M:Habanero.Util.SortedStringCollection.Add(System.String)">
            <summary>
            Adds a string to the collection, inserting it at the appropriate
            sorted position
            </summary>
            <param name="s">The string to add</param>
        </member>
        <member name="P:Habanero.Util.SortedStringCollection.Count">
            <summary>
            Returns the number of items held in the collection
            </summary>
        </member>
        <member name="P:Habanero.Util.SortedStringCollection.SyncRoot">
            <summary>
            Returns the synchronisation root
            </summary>
        </member>
        <member name="P:Habanero.Util.SortedStringCollection.IsSynchronized">
            <summary>
            Indicates whether the collection is synchronised
            </summary>
        </member>
        <member name="P:Habanero.Util.SortedStringCollection.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to search at</param>
            <returns>Returns the string found at the specified position</returns>
        </member>
        <member name="T:Habanero.Util.TypeLoader">
            <summary>
            Provides a loader of types for the specified assembly and class names
            </summary>
        </member>
        <member name="M:Habanero.Util.TypeLoader.LoadType(System.String,System.String)">
            <summary>
            Returns the type for the specified assembly and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <returns>Returns the type if found</returns>
            <exception cref="T:Habanero.Base.Exceptions.UnknownTypeNameException">Thrown if either
            the assembly name or class name cannot be found</exception>
        </member>
        <member name="M:Habanero.Util.TypeLoader.LoadClassType(System.Type@,System.String,System.String,System.String,System.String)">
            <summary>
             This method is used to load a class type from an assembly name and 
             class name if it has not been loaded yet. It also gives a descriptive 
             error message if it cannot be loaded.
            </summary>
            <param name="classType">The class type that is being loaded. 
             If this parameter is not null, then nothing is changed, otherwise
             the class type once loaded is returned through this parameter.</param>
            <param name="assemblyName">The assembly name to use if the class type needs loading</param>
            <param name="className">The class name to use if the class type needs loading</param>
            <param name="loadingTypeDesc">A description of what the type represents (eg. "Class")</param>
            <param name="loadingFor">The name of the class that this type is being loaded for. (eg. "Property Definition")</param>
            <exception cref="T:Habanero.Base.Exceptions.UnknownTypeNameException">This exception is thrown if the assembly name and 
             class name cannot be converted to a type object.</exception>
        </member>
        <member name="M:Habanero.Util.TypeLoader.ClassTypeInfo(System.Type,System.String@,System.String@)">
            <summary>
             Retrieves the assembly name and class name from a class type object.
            </summary>
            <param name="classType">The class type to get information from</param>
            <param name="assemblyName">The return parameter for the assembly name</param>
            <param name="className">The return parameter for the class name</param>
        </member>
        <member name="M:Habanero.Util.TypeLoader.CleanUpAssemblyName(System.String)">
            <summary>
             A Method used to ensure that an assembly name is not of a bad format for loading.
            </summary>
            <param name="assemblyName">The assembly name to be cleanded up.</param>
            <returns>The assembly name with any assembly file extensions removed.</returns>
        </member>
        <member name="T:Habanero.Util.Function`1">
            <summary>
             A delegate for a function with the specified return type and one parameter of the specified parameter type.
             This is the equivalent of the System.Func&lt;TReturn&gt; in .Net 3.
            </summary>
            <typeparam name="TReturn">The return type of the function.</typeparam>
        </member>
        <member name="T:Habanero.Util.Function`2">
            <summary>
             A delegate for a function with the specified return type and one parameter of the specified parameter type.
             This is the equivalent of the System.Func&lt;T,TReturn&gt; in .Net 3.
            </summary>
            <param name="arg0">The first argument of the function.</param>
            <typeparam name="TArg0">The type of the first argument of the function.</typeparam>
            <typeparam name="TReturn">The return type of the function.</typeparam>
        </member>
        <member name="T:Habanero.Base.RethrowingExceptionNotifier">
            <summary>
             An Exception Notifier that just rethrows the error.
             Used for testing.
            </summary>
        </member>
        <member name="M:Habanero.Base.RethrowingExceptionNotifier.Notify(System.Exception,System.String,System.String)">
            <summary>
            Notifies the user of an exception that has occurred
            </summary>
            <param name="ex">The exception</param>
            <param name="furtherMessage">Any further error messages</param>
            <param name="title">The title</param>
        </member>
        <member name="P:Habanero.Base.RethrowingExceptionNotifier.ExceptionMessage">
            <summary>
             The last exception logged by the exception notifier
            </summary>
        </member>
        <member name="T:Habanero.Base.IDatabaseConfig">
            <summary>
            An interface to model a class that stores database configuration 
            settings and creates connections using these settings
            </summary>
        </member>
        <member name="M:Habanero.Base.IDatabaseConfig.GetConnectionString">
            <summary>
            Returns a connection string tailored for the database vendor
            </summary>
            <returns>Returns a connection string</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConfig.GetConnection">
            <summary>
            Creates a database connection using the configuration settings
            stored
            </summary>
            <returns>Returns an IDbConnection object</returns>
        </member>
        <member name="M:Habanero.Base.IDatabaseConfig.GetDatabaseConnection">
            <summary>
            Creates a database connection using the configuration settings
            stored
            </summary>
            <returns>Returns an IDatabaseConnection object</returns>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.Vendor">
            <summary>
            Gets and sets access to the database vendor setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.Server">
            <summary>
            Gets and sets access to the database server setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.Database">
            <summary>
            Gets and sets access to the database name setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.UserName">
            <summary>
            Gets and sets access to the username setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.Password">
            <summary>
            Gets and sets access to the password setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.Port">
            <summary>
            Gets and sets access to the port setting
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.AssemblyName">
            <summary>
            The name of the Assembly to use - the assembly that contains the IDbConnection class for this database type.
            This does not need to be specified normally, but if you want to use a custom data provider you will need to 
            set this property before using the <see cref="T:Habanero.Base.IDatabaseConnectionFactory"/> to create the <see cref="T:Habanero.Base.IDatabaseConnection"/>.
            This must be the full name of the assembly if you are to be sure to get the right assembly.  Alternately if the dll is
            placed in the same folder as the application you can just specify the name of the file (without the .dll extension).
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.FullClassName">
            <summary>
            The fully qualified name of the type to use when creating the IDbConnection.
            This does not need to be specified normally, but if you want to use a custom data provider you will need to 
            set this property before using the <see cref="T:Habanero.Base.IDatabaseConnectionFactory"/> to create the <see cref="T:Habanero.Base.IDatabaseConnection"/>.
            This class must exist withing the assembly specified in the <see cref="P:Habanero.Base.IDatabaseConfig.AssemblyName"/> property, and be fully qualified
            i.e. it must include the namespace.
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.ConnectionStringFactoryAssemblyName">
            <summary>
            The full assembly name of the assembly containing <see cref="T:Habanero.Base.IConnectionStringFactory"/> to use.
            This does not need to be specified if you are using one of the standard Habanero database types.
            </summary>
        </member>
        <member name="P:Habanero.Base.IDatabaseConfig.ConnectionStringFactoryClassName">
            <summary>
            The fully qualified class name of the <see cref="T:Habanero.Base.IConnectionStringFactory"/> to use.
            This does not need to be specified if you are using one of the standard Habanero database types.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.CannotSaveException">
            <summary>
            Provides an exception to throw when the application was unable
            to save data
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.CannotSaveException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.CannotSaveException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.CannotSaveException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.CannotSaveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IUIFormGrid">
            <summary>
            An interface defining a 
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormGrid.RelationshipName">
            <summary>
            Returns the relationship name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormGrid.GridType">
            <summary>
            Returns the grid type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.IUIFormGrid.CorrespondingRelationshipName">
            <summary>
            Returns the corresponding relationship name
            </summary>
        </member>
        <member name="T:Habanero.Base.ITransactionLog">
            <summary>
            An interface to implement a transaction log. There are many 
            strategies for implementing transaction logs, such as recording 
            to a database table, recording to a text file, etc.<br/><br/>
            This interface fulfils the roll of the Strategy Object in the 
            GOF Strategy pattern.<br/><br/>
            The combination of properties passed to the class in its 
            constructor, methods or properties should be able to provide 
            all required functionality to implement the strategy chosen.
            </summary>
        </member>
        <member name="T:Habanero.Base.ITransactionalDB">
            <summary>
             Interface that is to be implemented for transactional object that are being updated
             to the database.
            </summary>
        </member>
        <member name="M:Habanero.Base.ITransactionalDB.GetPersistSql">
            <summary>
             Returns the appropriate sql statement collection depending on the state of the object.
             E.g. Update SQL, InsertSQL or DeleteSQL.
            </summary>
        </member>
        <member name="T:Habanero.Base.IPropDefCol">
            <summary>
            Provides a collection of property definitions.
            </summary>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.CreateBOPropertyCol(System.Boolean)">
            <summary>
            Creates a business object property collection that mirrors
            this one.  The new collection will contain a BOProp object for
            each PropDef object in this collection, with that BOProp object
            storing an instance of the PropDef object.
            </summary>
            <param name="isNewObject">Whether the new BOProps in the
            collection will be new objects. See PropDef.CreateBOProp
            for more info.</param>
            <returns>Returns the new BOPropCol object</returns>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Add(Habanero.Base.IPropDef)">
            <summary>
            Add an existing property definition to the collection
            </summary>
            <param name="propDef">The existing property definition</param>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Clone">
            <summary>
             Clones the propdefcol.  The new propdefcol has the same propdefs in it.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Clone(System.Boolean)">
            <summary>
            Clones the propdefcol. This method was created so that you could control the depth of the copy. The reason is so that you can limit the
              extra memory used in cases where the propdef does not need to be copied.
            </summary>
            <param name="clonePropDefs">If true then makes a full copy of the propdefs else only makes a copy of the propdefcol.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Contains(Habanero.Base.IPropDef)">
            <summary>
            Indicates if the specified property definition exists
            in the collection.
            </summary>
            <param name="propDef">The Property definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Contains(System.String)">
            <summary>
            Indicates if a property definition with the given key exists
            in the collection.
            </summary>
            <param name="propertyName">The propertyName to match</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Remove(Habanero.Base.IPropDef)">
            <summary>
            Removes a property definition from the collection
            </summary>
            <param name="propDef">The Property definition to remove</param>
        </member>
        <member name="M:Habanero.Base.IPropDefCol.Add(System.Collections.Generic.IEnumerable{Habanero.Base.IPropDef})">
            <summary>
            Adds all the property definitions from the given collection
            into this one.
            </summary>
            <param name="propDefCol">The collection of property definitions</param>
        </member>
        <member name="P:Habanero.Base.IPropDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <exception cref="T:System.ArgumentException">Thrown if the propertyName is not
            found. If you are checking for the existence of a propertyName, use the
            Contains() method.</exception>
        </member>
        <member name="P:Habanero.Base.IPropDefCol.Count">
            <summary>
            Gets the number of definitions in this collection
            </summary>
        </member>
        <member name="P:Habanero.Base.IPropDefCol.ClassDef">
            <summary>
             The ClassDef that these PropDefs belong to.
            </summary>
        </member>
        <member name="T:Habanero.Base.Exceptions.InvalidPropertyNameException">
            <summary>
            Provides an exception to throw when a property value is invalid
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyNameException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyNameException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyNameException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.Base.Exceptions.InvalidPropertyNameException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.Base.BusinessObjectActions">
            <summary>
             Provides a predifined list of Actions that can be performed on any Business Object element 
            </summary>
        </member>
        <member name="F:Habanero.Base.BusinessObjectActions.CanCreate">
            <summary>
            Can create the element
            </summary>
        </member>
        <member name="F:Habanero.Base.BusinessObjectActions.CanRead">
            <summary>
            Can view the element
            </summary>
        </member>
        <member name="F:Habanero.Base.BusinessObjectActions.CanUpdate">
            <summary>
            Can update an existing element
            </summary>
        </member>
        <member name="F:Habanero.Base.BusinessObjectActions.CanDelete">
            <summary>
            Can delete the element
            </summary>
        </member>
        <member name="T:Habanero.Base.IBusinessObjectAuthorisation">
            <summary>
            Provides an interface for the Security Authorisation Policy (Strategy) 
             for checking the users permissions to access <see cref="T:Habanero.Base.IBusinessObject"/> Functionality.
            If you would like to implement your own Authorisation Strategy then
              implement this Interface and set it as the strategy for the Business Object.
            Security Authorisation Policy for the <see cref="T:Habanero.Base.IBusinessObject"/> is implemented
             using the GOF Strategy Pattern.
            The Business Object will have a Reference to an object of this type.
            Since most objects of the same type (e.g. ContactPerson) implement the Same authorisation policy the 
            IsAuthorised accepts the businessObject as an argument this allows you to have only one 
            instance of the policy for all loaded Business object of the ContactPerson Type.
            This results in significant performance improvements.
            </summary>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectAuthorisation.AddAuthorisedRole(System.String,Habanero.Base.BusinessObjectActions)">
            <summary>
             Adds a role to the list of roles that can perform the specified action.
            </summary>
            <param name="actionToPerform"></param>
            <param name="authorisedRole"></param>
        </member>
        <member name="M:Habanero.Base.IBusinessObjectAuthorisation.IsAuthorised(Habanero.Base.IBusinessObject,Habanero.Base.BusinessObjectActions)">
            <summary>
            Method returns true if the user has permission to use the element specified according to the actionToPerform.
            the dictionary key will be Permission e.g. CanCreate and the value will be true or false. E.g. CanCreate, True.
            The permissions are determined by the least restrictive permission that the user has to the element via all
            profiles e.g. if a user is a member of readonly profile but also of CreateNewMember profile then the user
            will have permissions to CanCreate = true for member.
            
            NNB: It is assumed that the user is logged on. This method will raise an error if the currentUser is not logged on.
            </summary>
            <param name="businessObject">The Business Object being authorised</param>
            <param name="actionToPerform">The action that the user is being required to perform e.g. Delete a ContactPerson.</param>
        </member>
        <member name="T:Habanero.Base.BOPropActions">
            <summary>
             Provides a predifined list of Actions that can be performed on any BOProp.
            </summary>
        </member>
        <member name="F:Habanero.Base.BOPropActions.CanRead">
            <summary>
            Can view the element
            </summary>
        </member>
        <member name="F:Habanero.Base.BOPropActions.CanUpdate">
            <summary>
            Can update an existing element
            </summary>
        </member>
        <member name="T:Habanero.Base.IBOPropAuthorisation">
            <summary>
            Provides an interface for the Security Authorisation Policy (Strategy) 
             for checking the users permissions to access <see cref="T:Habanero.Base.IBOProp"/> Functionality.
            If you would like to implement your own Authorisation Strategy then
              implement this Interface and set it as the strategy for the BOProp.
            Security Authorisation Policy for the <see cref="T:Habanero.Base.IBOProp"/> is implemented
             using the GOF Strategy Pattern.
            The BOProp will have a Reference to an object of this type.
            In most cases only one Strategy is required for all BOProps Instances i.e. 
            The BOProp for Surname for all the loaded ContactPeople all use the same Authorisation strategy.
            For this reason the BOProp Authorisation Strategy IsAuthorised accepts the prop as an argument.
            The BOPropAuthorisation strategy can then be set for the property definition <see cref="T:Habanero.Base.IPropDef"/>.
            For the <see cref="T:Habanero.Base.IBOProp"/>
            </summary>
        </member>
        <member name="M:Habanero.Base.IBOPropAuthorisation.AddAuthorisedRole(System.String,Habanero.Base.BOPropActions)">
            <summary>
             Adds a authorisedRole to the list of roles that can perform the specified action.
            </summary>
            <param name="actionToPerform">The Action to perform e.g. Delete that is being added to the authorisation role</param>
            <param name="authorisedRole">The role that the actionToPerform is being added to</param>
        </member>
        <member name="M:Habanero.Base.IBOPropAuthorisation.IsAuthorised(Habanero.Base.IBOProp,Habanero.Base.BOPropActions)">
            <summary>
            Method returns true if the user has permission to use the element specified according to the actionToPerform.
            the dictionary key will be Permission e.g. CanCreate and the value will be true or false. E.g. CanCreate, True.
            The permissions are determined by the least restrictive permission that the user has to the element via all
            profiles e.g. if a user is a member of readonly profile but also of CreateNewMember profile then the user
            will have permissions to CanCreate = true for member.
            
            NNB: It is assumed that the user is logged on. This method will raise an error if the currentUser is not logged on.
            </summary>
            <param name="prop">The Property that is being authorised.</param>
            <param name="actionToPerform">The action that the user is being required to perform e.g. Delete a Contact.</param>
        </member>
        <member name="T:Habanero.Base.EventHandler`2">
            <summary>
             Represents the method that will handle an event.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="eventArgs1">A TEventArgs1 that contains the event data.</param>
            <param name="eventArgs2">A TEventArgs2 that contains the event data.</param>
            <typeparam name="TEventArgs1">The type of the event data generated by the event for the first parameter.</typeparam>
            <typeparam name="TEventArgs2">The type of the event data generated by the event for the second parameter.</typeparam>
        </member>
        <member name="T:Habanero.Base.CriteriaParser">
            <summary>
             Parses a criteria string and creates a criteria object <see cref="T:Habanero.Base.Criteria"/> 
               using CriteriaExpression.
            </summary>
        </member>
        <member name="M:Habanero.Base.CriteriaParser.CreateCriteria(System.String)">
            <summary>
             Creates a criteria object by parsing the criteriaString into a criteria
             expression object.
            </summary>
            <param name="criteriaString">The Criteria string that is being parsed.</param>
        </member>
        <member name="M:Habanero.Base.CriteriaParser.CreateComparisonOperator(System.String)">
            <summary>
             Converts string comparison operators into <see cref="T:Habanero.Base.Criteria.ComparisonOp"></see> Enums.
            </summary>
            <param name="operatorString">string operator</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.Base.CriteriaParser.CreateLogicalOperator(System.String)">
            <summary>
             Converts Logic operators strings into logical operator enumerated type <see cref="T:Habanero.Base.Criteria.LogicalOp"/>
            </summary>
            <param name="operatorString"></param>
            <returns></returns>
        </member>
    </members>
</doc>
